您的位置:首页 > 其它

第九周 项目六 穷举法解决组合问题3

2014-10-28 22:48 316 查看
问题及代码:

/*
*Copyright(c)2014,烟台计算机学院
*All rights reserved
*文件名称:test.cpp
*作者:曾建强
*完成日期:2014年10月28日
*版本号:v1.0
*
*问题描述:年龄问题,张三,李四,王五,刘六的年龄成一等差数列,他们年龄之和为26,相乘是880,求以他们年龄为前四项的等差数列的前20项
*输入描述:
*程序输出:
*/
#include <iostream>
using namespace std;
int main()
{
int a,n,sum ;
// 首项为n,项差为a
cout<< "求以张三,李四,王五,刘六年龄为前四项的等差数列的前20项为:"<<endl;
for (n=0; n<=6; n++)
for (a=0; a<=4; a++)
if(4*n+6*a==26&&n*(n+a)*(n+a+a)*(n+a+a+a)==880)
{
for (int i=0; i<20; i++)
{
sum =n;
sum=sum+a*i;
cout<<sum<< "  ";
}

}
return 0;
}


运行结果:



知识点总结:

        这个程序比之前的两个程序更复杂了下,其实也就是绕了个弯子。以后解决这类问题,可以用贺老师的话说:“自顶向下,逐步求精!”

学习心得:

        之前写了好多遍,可是输出的程序只有几个中文字符,试了好几遍都是酱紫,当场崩溃了。最后还是一步步检查把问题找出来了,出现四个错误,for后面的括号出现了逗号,if后面的括号乘号变成了加号等等。以后一定会吸取教训,不再犯这类的低级错误。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: