百鸡百钱——程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
深圳大学实验报告课程名称:高级程序语言设计
实验项目名称:“百钱买鸡问题”学院:信息工程学院
专业:
指导教师:
报告人:学号:班级:
实验时间:
实验报告提交时间:
教务处制
实验目的与要求:
“百钱买鸡问题”:
设1个公鸡值5钱,1个母鸡值3钱,3个小鸡值1钱,现用100钱来买鸡,问有多少种方法买鸡?
(每种方法需包含公鸡、母鸡、小鸡的个数)。
编写一个程序,输出每一种方法的公鸡、母鸡、小鸡个数,并且统计出有多少种方法。要求:流程图、代码、结果、分析。
程序代码:
#include
void main ()
{
int i,j,k,n=0;
for(i=0;i<=20;i++)
for(j=0;j<=33;j++)
for(k=0;k<=300;k+=3)
if(k==300-15*i-9*j)
{
printf("i=%d,j=%d,k=%d\n",i,j,k);
n++;
}
printf("总方法数:%d\n",n);
}
流程图:
数据处理分析:
设一百只鸡中公鸡、母鸡、小鸡分别为 i,j,k 问题化为三元一次方程组:
这里 i,j,k 为正整数,且k是3的倍数;由于鸡和钱的总数都是100,可以确定i,j,k 的取值范围:
1)i的取值范围为0~20
2)j的取值范围为0~33
3)k的取值范围为0~300,步长为3
对于这个问题我们可以用列举的方法得出i,j,k的所有可能组合,最后得到问题的解。(int i,j,k ,n=0; /*公鸡、母鸡、小鸡的只数、方法数*/)
初始算法
1.初始化为1;
2.计算i循环,找到公鸡的只数;
3.计算j循环,找到母鸡的只数;
4.计算k循环,找到小鸡的只数;
5.结束,程序输出结果后退出。
算法细化
算法的步骤1实际上是分散在程序之中的,由于用的是for循环,很方便的初始条件放到了表达式之中了。步骤2和3是按照步长1去寻找公鸡和母鸡的个数。
实验结果:
指导教师批阅意见:
成绩评定:
指导教师签字:
年月日备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。