编程设有一个n*m方格的棋盘(1<=m,n<=100)求该棋盘包含多少正方形,长方形。

要详细过程写c,c++
2024年11月28日 16:49
有4个网友回答
网友(1):

对于一个n*m的棋盘,共有矩形 (m+m-1+m-2+...+1)*(n+n-1+n-2+...+1)
即[m*(m+1)/2]*[n*(n+1)/2]个,这一步可用前一个式子循环加,也可用后一个式子直接算;
共有正方形(假设m>n) m*n+(m-1)*(n-1)+...+(m-n+1)*1 个,这步用循环做就行;
你所说的长方形就用 矩形数 减去 正方形数 就行了。

网友(2):

#include//书p34 problem16
#include
int main()
{
long long n,m,square,rectangle=0,l,w,i,tem;

scanf("%lld %lld",&n,&m);
if(n>m)//保证n<=m
{
tem=n;n=m;m=tem;
}
for(i=2,square=0;i<=n;i++)
square=square+(n-i+1)*(m-i+1);
for(l=1;l<=m;l++)
for(w=1;w<=n;w++)
rectangle=rectangle+(n-w+1)*(m-l+1);
square=square+n*m;
rectangle=rectangle-square;

printf("%lld %lld",square,rectangle);
system("pause");
return 0;
}

网友(3):

已经发给你了

网友(4):

drthdtyjfyukghujkgyukftyjfc tyjkftyjftyuftryudftyudftyjufu