C++第四次上机实验-穷举法

来源:互联网 发布:淘宝图片空间协议手机 编辑:程序博客网 时间:2024/06/05 14:14
一、年龄几何。
(1)问题及代码:
/** 文件名称:穷举法解决组合问题* 作    者:徐永栋* 完成日期:2017 年4月7日* 版 本 号:v1.0* 对任务及求解方法的描述部分:年龄几何* 输入描述:无* 问题描述:张三、李四、王五、刘六的年龄成一等差数列,他们四人的年龄相加是26,相乘是880,求以他们的年龄为前4项的等差数列的前20项。* 程序输出:等差数列的前20项。* 问题分析:无* 算法设计:无 */#include<iostream>using namespace std;int main(){int a,n,an,b;for(a=1;a<=4;a++)for(n=1;n<=6;n++)if(4*n+6*a==26&&n*(n+a)*(n+a+a)*(n+a+a+a)==880){for(b=1;b<=20;b++){an=n+(b-1)*a;cout<<an<<'\t';}}
        return }

(2) 运行结果:
二、百钱百鸡问题
(1)问题及代码:
/** 文件名称:穷举法解决组合问题* 作    者:徐永栋* 完成日期:2017 年4月7日* 版 本 号:v1.0* 对任务及求解方法的描述部分:年龄几何* 输入描述:无* 问题描述:张三、李四、王五、刘六的年龄成一等差数列,他们四人的年龄相加是26,相乘是880,求以他们的年龄为前4项的等差数列的前20项。* 程序输出:等差数列的前20项。* 问题分析:无* 算法设计:无 */#include<iostream>using namespace std;int main(){int a,n,an,b;for(a=1;a<=4;a++)for(n=1;n<=6;n++)if(4*n+6*a==26&&n*(n+a)*(n+a+a)*(n+a+a+a)==880){for(b=1;b<=20;b++){an=n+(b-1)*a;cout<<an<<'\t';}}        return 0;}



(2)运行结果:

三、三色球问题
(1)问题及代码:
/** 文件名称:三色球问题* 作    者:徐永栋* 完成日期:2017 年4月7日* 版 本 号:v1.0* 对任务及求解方法的描述部分:略* 输入描述: 无* 问题描述:若一个口袋中放有12个球,其中有3个红的。3个白的和6个黒的,问从中任取8个共有多少种不同的颜色搭配?* 程序输出:不同的颜色搭配* 问题分析:无* 算法设计:无 */ #include<iostream>using namespace std;int main(){int i,j,z;cout<<"不同的颜色搭配有:"<<endl;for(i=0;i<=3;i++)for(j=0;j<=3;j++){if(8-i-j<=6)cout<<"红球:"<<i<<",白球:"<<j<<",黑球:"<<8-i-j<<endl;}return 0;}
(2) 运行结果:

四、求出"都、要、学、C"4个符号分别代表的数字。
(1)问题及代码:
/** 文件名称:求出"都、要、学、C"4个符号分别代表的数字。* 作    者:徐永栋* 完成日期:2017 年4月7日* 版 本 号:v1.0* 对任务及求解方法的描述部分:* 输入描述: 无* 问题描述:设计程序求出"都、要、学、C"4个符号分别代表的数字。* 程序输出:"都、要、学、C"4个符号分别代表的数字* 问题分析:无* 算法设计:无 */#include<iostream>using namespace std;int main(){int a,b,c,d;for(a=0;a<=9;a++)for(b=0;b<=9;b++)for(c=0;c<=9;c++)for(d=0;d<=9;d++)if(4*d+30*c+200*b+a*1000==2008&&a!=b&&a!=c&&a!=d&&b!=c&&b!=d&&c!=d)cout<<"都:"<<a<<" 要:"<<b<<" 学:"<<c<<" C:"<<d<<endl;return 0;}
(2)运行结果:



五、心得体会:
       学会了穷举法,很有用,C++真的很有趣,我会继续努力。
六、 知识点总结:
     “for语句”也称为“for循环”。语句格式为:  for ( 表达式1; 表达式2 ; 表达式3 ) 语句。
(1) 计算表达式1的值;
(2) 计算表达式2的值,若为真则执行循环体,若为假则结束循环;
(3) 计算表达式3的值;
(4) 转回上面第(2)步继续执行。

      
0 0
原创粉丝点击