⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 12.txt

📁 n*m个方格的棋盘(1<=m,n<=100)
💻 TXT
字号:
//n*m个方格的棋盘(1<=m,n<=100),求出该棋盘中包含多少个正方形、多少个长方形(不包括正方形)。 
//例如:当n=3,m=2时,将输出8和10
//组合数学(1+2+3+……+m)*(1+2+3+……+m)
//m*n + (m-1)*(n-1) + (m-1)*(n-2) + (m-k)*(n-k)一直到有一边为则退出

#include <iostream>
using namespace std;

int Countrectangle(int m, int n, unsigned long *square, unsigned long *rectangle)
{  
	*square = *rectangle = 0; 
	*rectangle=m*(m+1)/2;
	*rectangle*=n*(n+1)/2;
	while(m>0 && n>0)
		*square+=(m--)*(n--);
	*rectangle-=*square;
	return 0;
}
    
int main()
{
	int n, m;
	cout<<"请输入n和m:"<<endl;
	while(cin>>n>>m)
	{
		if(n<=0 || m<=0)
		{
			cout<<"注意:你所输入的范围无效!程序结束!!!"<<endl;
			return 0;
		}
		unsigned long square, rectangle;
		Countrectangle(n, m, &square, &rectangle);			
		cout<<"n为:"<<n<<", m为:"<<m<<"时,正方形个数为:"
			<<square<<", 长方形个数为:"<<rectangle<<endl;
		cout<<"请输入n和m:"<<endl;
	}
	return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -