Project Euler:Problem 85 Counting rectangles

By counting carefully it can be seen that a rectangular grid measuring 3 by 2 contains eighteen rectangles:

Although there exists no rectangular grid that contains exactly two million rectangles, find the area of the grid with the nearest solution.

以为矩阵宽度固定为2,特别高兴的写出来了发现结果不对┑( ̄Д  ̄)┍

原来是任意的矩形

对于任意矩形M*N

其中1*1的矩阵有M*N个

1*2的矩阵有M*(N-1)个

2*1的矩阵有(M-1)*N个

实际上只要确定小矩阵左上角顶点在大矩形中的位置,,这个矩阵的位置就唯一确定了

所有在任意矩形M*N中,矩阵i*j有(M-i+1)*(N-j+1)个

#include <iostream> #include <string>#include <cmath>using namespace std;int grid[100000];int grid_num(int m, int n){int num = 0;for (int i = 1; i <= m; i++){for (int j = 1; j <= n; j++){num += (m – i + 1)*(n – j + 1);}}return num;}int main(){int s;int closest = 0;for (int M = 1; M < 2000; M++){for (int N = 1; N < 2000; N++){int num = grid_num(M, N);if (abs(closest-2000000)>abs(num-2000000)){s = M*N;closest = num;}if (num>2000000)break;}}cout << s << endl;system("pause");return 0;

版权声明:本文为博主原创文章,未经博主允许不得转载。

梦想,并不奢侈,只要勇敢地迈出第一步。

Project Euler:Problem 85 Counting rectangles

相关文章:

你感兴趣的文章:

标签云: