原题链接:C语言训练-百钱百鸡问题
解题思路:
1.首先定义变量coincock(可用来买公鸡的钱),coinhen(可用来买母鸡的钱),coinchi(可用来买小鸡的钱);
2.先买公鸡,买后剩余的钱存在coinhen里; 买完后剩余的钱可以买coinhen/3只母鸡;
3.然后买母鸡,买后剩余的钱存在coinchi里; 买完后剩余的钱可以买coinchi*3只小鸡;
4.最后把coinchi全买小鸡;
5.看买的公鸡+母鸡+小鸡是否等于100,等于则输出解;
注意事项:
不可以就用一个变量存每个过程剩余的钱:
for ( int cock = 0; cock <= 12; cock++ ) { coin = 100; coin = coin - (5 * cock); for ( int hen = 0; hen <= (coin / 3); hen++ ) { coin = coin - (3 * hen); if ( (cock + hen + coin * 3 == 100) ) printf( "cock=%d,hen=%d,chicken=%d\n", cock, hen, coin * 3 ); } }
coin买完母鸡后就变了,再次返回买母鸡时,可买的母鸡数不对的;
参考代码:
#include <stdio.h> int main() { int coincock, coinhen, coinchi; for ( int cock = 0; cock <= 12; cock++ ) { coincock = 100; coinhen = coincock - (5 * cock); for ( int hen = 0; hen <= (coinhen / 3); hen++ ) { coinchi = coinhen - (3 * hen); if ( (cock + hen + coinchi * 3 == 100) ) printf( "cock=%d,hen=%d,chicken=%d\n", cock, hen, coinchi * 3 ); } } return(0); }
别忘点赞哦-.-
0.0分
13 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复