ACM基础题 - 求矩形个数
生活随笔
收集整理的這篇文章主要介紹了
ACM基础题 - 求矩形个数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
描述
在一個3*2的矩形中,可以找到6個1*1的矩形,4個2*1的矩形3個1*2的矩形,2個2*2的矩形,2個3*1的矩形和1個3*2的矩形,總共18個矩形。
給出A,B,計算可以從中找到多少個矩形。
輸入
輸入2個整數A,B(1<=A,B<=1000)
輸出
輸出找到的矩形數。?
樣例輸入
1 2
3 2
樣例輸出
3
18
公式是:a*(a+1)*b*(b+1)/4;
4*(4+1)*5*(5+1)/4 = 150
2*(2+1)*2*(2+1)/4 = 9
?
?
MFC實現;對話框工程;VS2012;
void CjxgsDlg::OnBnClickedButton1() {// TODO: 在此添加控件通知處理程序代碼CString str1, str2;int a,b,i,t;long long m=0,c=0;GetDlgItem(IDC_EDIT1)->GetWindowTextW(str1);CStringArray* result = DivString(str1);str2 = result->GetAt(0);a = _ttoi(str2);str2 = result->GetAt(1);b = _ttoi(str2);for(t=1;t<=b;t++) //a是行,b是列 { m+=t;} for(i=1;i<=a;i++) { c+=m*i; //c=c+m*i c=3 } str2.Format(_T("%d"),c);SetDlgItemText(IDC_EDIT2,str2); }CStringArray* DivString(CString test) {CStringArray* m_result = new CStringArray;while(TRUE){int index = test.Find(_T(","));if(index == -1){m_result->Add(test);return m_result;}CString test1 = test.Left(index);m_result->Add(test1);test = test.Right(test.GetLength()-index-1);} }CStringArray* DivString(CString );? ?這句函數聲明加到對話框CPP文件的頭部;這函數是按逗號切分字符串;
?
?
?
?
CStringArray* DivString(CString test) 非對話框類的成員函數,先在頭部聲明;
?
?
?
?
總結
以上是生活随笔為你收集整理的ACM基础题 - 求矩形个数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MFC输出蛇行矩阵
- 下一篇: ACM基础题 - 去除字符序列中的几个字