小提示:部分题目的图形有偏移现象;解决办法为,将题目拷贝到记事本,字体设置为‘Fixedsys’。
(编译环境:windowsXP_sp3 + Visual_C++_2008,保证编译成功,正常运行。)
10. 如图1所示,编写程序计算 ┎┰┰┰┰┰┰┰┰┰┒
大大小小正方形共有多少?当最小 ┠╂╂╂╂╂╂╂╂╂┨
正方行边长为1时,它们的总面积 ┠╂╂╂╂╂╂╂╂╂┨
共为多少? ┠╂╂╂╂╂╂╂╂╂┨
┠╂╂╂╂╂╂╂╂╂┨
┠╂╂╂╂╂╂╂╂╂┨
┠╂╂╂╂╂╂╂╂╂┨
┠╂╂╂╂╂╂╂╂╂┨
┠╂╂╂╂╂╂╂╂╂┨
┠╂╂╂╂╂╂╂╂╂┨
┖┸┸┸┸┸┸┸┸┸┚
代码如下:
#include<iostream>
using namespace::std;
void GetChangeback(int &x1, int &x2, int &x3, int &x4);
void ReportNumber(int x1, int x2, int x3, int x4);
void main()
{
int m, n, k; //定义多米格的长、宽:m、n,和数组长度k
cout<<"请输入多米格的长和宽"<<endl;
cin>>m>>n;
k = (m<=n) ? m : n; //k取多米格的长、宽的较小值
int *s = new int [k]; //定义数组,长度为k
for(int i=0; i<k; i++)
s[i] = (m-i)*(n-i); //数组的第i个元素用于记录边长为i+1的正方形数量
int sum = 0; //sum用于记录大大小小的所有正方形个数之和
int area = 0; area用于记录大大小小的所有正方形面积之和
for(int i=0; i<k; i++)
{
sum += s[i]; //正方形个数累加
area += (i+1)*(i+1)*s[i]; //正方形面积累加
}
cout<<"大大小小的正方形一共有:"<<sum<<endl;
cout<<"他们的总面积是:"<<area<<endl;
system("pause");
}