C语言克服百钱买百鸡问题
发布时间:2021-11-12 11:05:31 所属栏目:PHP教程 来源:互联网
导读:我国古代数学家张丘建在他的《算经》中提出了一个著名的百钱买百鸡问题,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何? C语言实现过程: 第一种 (1) 使用 for 语句对 3 种鸡的数先在事先确定好的范围内进行穷举并判断
我国古代数学家张丘建在他的《算经》中提出了一个著名的“百钱买百鸡问题”,鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何? C语言实现过程: 第一种 (1) 使用 for 语句对 3 种鸡的数先在事先确定好的范围内进行穷举并判断,对满足条件的 3 种鸡的数量按指定格式输出,否则进行下次循环。 (2) 程序代码如下: #include <stdio.h> int main() { int cock,hen,chick; /*定义变童为基本整型*/ for(cock=0;cock<=20;cock++) /*公鸡范围在 0~20 之间*/ for(hen=0;hen<=33;hen++) /*母鸡范围在 0~33 之间*/ for(chick=3;chick<=99;chick++) /*小鸡范围在 3~99 之间*/ if(5*cock+3*hen+chick/3==100) /*判断钱数是否等于 100*/ if(cock+hen+chick==100) /*判断购买的鸡数是否等于 100*/ if(chick%3==0) /*判断小鸡数是否能被 3 整除*/ printf("公鸡:%d,母鸡:%d,小鸡:%dn",cock,hen,chick); return 0; } 运行结果: 公鸡:0,母鸡:25,小鸡:75 公鸡:4,母鸡:18,小鸡:78 公鸡:8,母鸡:11,小鸡:81 公鸡:12,母鸡:4,小鸡:84 C语言解决百钱买百鸡问题 技术要点: 根据题意设公鸡、母鸡和雏鸡分别为 cock、hen 和 chick,如果 100 元全买公鸡,那么最多能买 20 只,所以 cock 的范围是大于等于 0 且小于等于 20;如果全买母鸡,那么最多能买 33 只,所以 hen 的范围是大于等于 0 且小于等于 33;如果 100 元钱全买小鸡,那么最多能买 99 只(根据题意小鸡的数量应小于 100 且是 3 的倍数)。 在确定了各种鸡的范围后进行穷举并判断,判断的条件有以下 3 点: (1) 所买的 3 种鸡的钱数总和为 100。 (2) 所买的 3 种鸡的数量之和为 100。 (3) 所买的小鸡数必须是 3 的倍数。 二、抽象为数学模型 设鸡翁 鸡母 鸡雏数量分别为x y z,则: x+y+y=100 5x+3y+(1/3)z=100 解答示范 采用穷举法解决: > #include<stdio.h> int main(){ int x, y, z; for(x=0; x<100; x++){ for(y=0; y<100; y++){ for(z=0; z<100; z++){ if(x+y+z==100 && 5*x+3*y+z/3==100){ printf("鸡翁%d只,鸡母%d只,鸡稚%d只。n", x, y, z); } } } } return 0; } 运行结果 linuxidc@linuxidc:~/linuxidc.com$ ./linuxidc.com 鸡翁0只,鸡母25只,鸡稚75只。 鸡翁3只,鸡母20只,鸡稚77只。 鸡翁4只,鸡母18只,鸡稚78只。 鸡翁7只,鸡母13只,鸡稚80只。 鸡翁8只,鸡母11只,鸡稚81只。 鸡翁11只,鸡母6只,鸡稚83只。 鸡翁12只,鸡母4只,鸡稚84只。 (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |