递归解决分鱼问题
#include <iostream> using namespace std; /*题目: A、B、C、D、E5个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡 觉。第二天,A第一个醒来,他将鱼分成5份,把多余的一条鱼扔掉,拿走自己的一份。B第二个醒 来,也将鱼分为5份,把多余的一条扔掉,拿走自己的一份。c、D、E依次醒来,也按同样的方法拿 鱼。问他们合伙至少捕了多少条鱼? */ /*分析 根据题意假设鱼的总数是x,那么第一次每人分到的鱼的数量可用(x一1)巧表示,余下的鱼数为4* (x-l)巧,将余下的数量重新赋值给x,依然调用(x一1)巧,如果连续5次x一1均能被5整除,则说明最初 的x值便是本题目的解。 */ int sub(int n) { if (n == 1) { static int i = 0; do { i++; } while (i % 5 != 0); return (i + 1); } else { int t; do { t = sub(n - 1); } while (t % 4 != 0); return (t / 4 * 5 + 1); } } int main() { int total; total = sub(5); // the total number of fish is 3121 cout << "the total number of fish is " << total; return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具