编程打卡:C语言趣味编程习题做
编程打卡:C语言趣味编程习题做
百钱百鸡问题
问题描述
一只 Cock 卖 5 钱,Hen 卖 3 钱,chicken 卖 0.33333333 钱,真正工作的时候不要用浮点数存钱啊笨蛋!然后100钱买了100只鸡,问各买了多少只。
设计思路
解不定方程,穷举。
两层循环遍历各种鸡的个数,第三种鸡可以直接相减得出结果,然后判断总价是否为100即可
程序流程图
代码
#include <iostream> using namespace std; int main() { for (int i = 0; i < 20; i++) { for (int j = 0; j < 33; j++) { int k = 100 - i - j; if (i * 5 + j * 3 + (float)k/3 == 100) cout << "cock = " << i << ", hen = " << j << ", chicken = " << k << endl; } } }
执行结果
cock = 0, hen = 25, chicken = 75 cock = 4, hen = 18, chicken = 78 cock = 8, hen = 11, chicken = 81 cock = 12, hen = 4, chicken = 84
打渔还是晒网?
问题描述
1990年1月1日开始三天打渔两天晒网,询问之后的一个日期是在做什么。
设计思路
计算从1990年1月1日到询问的日期移动过了多少天,然后对5求模。结果0,1,2则为打渔,3,4则为晒网。
逐层计算年,月,日的差即可。
程序流程图
伪代码
cin >> yy >> mm >> dd daySum(yy,mm,dd) if daySum % 5 <= 2 cout << "打渔" else cout << "晒网"
代码
#include <iostream> using namespace std; int perMonth[] = {0,31,28,31,30,31,30,31,31,30,31,30,31}; int getSum(int yy,int mm,int dd) { int sum; for (int i = 1990; i < yy; i++) { if (__isleap(i)) sum += 366; else sum += 365; } for (int i = 1; i < mm; i++) { sum += perMonth[i]; if (i == 2 && __isleap(yy)) sum ++; } sum += dd - 1; return sum; } int main () { int yy,mm,dd; cin >> yy >> mm >> dd; int sum = getSum(yy,mm,dd); if (sum % 5 <= 2) cout << "打渔" << endl; else cout << "晒网" << endl; }
标签:
软件工程打卡
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统