常见的基础面试题目。

举例子,一个3*4的网格中有多少个1*1不同的格子呢,12个。
有多少个1*2的格子呢?想一下,比如在第一行,应该3个,即4-2+1个,总共三行,那总共有3*3即9个1*2的方格。
同样的道理,应该有多少个2*1的方格呢?答案是(3-2+1)*4,即8个。
有多少个2*2的网格呢?根据上面的规律应该是(3-2+1)*(4-2+1),即6个。
规律是,对于一个m*n的网格中i*j网格的个数为(m-i+1)*(n-j+1)个。
答 案:
#include <iostream>
using namespace std;
int cal(int wid, int height)
{
if(wid<1 || height <1)
return 0;
int num = 0;
for(int i=1;i<=wid;i++)
{
for(int j=1; j<= height;j++)
{
if(i!=j)
num += (wid-i+1)*(height-h+1);
}
}
return num;
}