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;
版权声明:本文为博主原创文章,未经博主允许不得转载。
梦想,并不奢侈,只要勇敢地迈出第一步。