?? 12.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 + -