电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

递归算法解答VIP免费

递归算法解答_第1页
1/6
递归算法解答_第2页
2/6
递归算法解答_第3页
3/6
/* --------------------------------------------------------------------------------------------------------------------------- 1、运动会开了 N 天,一共发出金牌 M 枚。第一天发金 牌 1 枚加剩下的七分之一枚,第二天发金牌 2 枚加剩下 的七分之一枚,第 3 天发金牌 3 枚加剩下的七分之一枚, 以后每天都照此办理。到了第 N 天刚好还有金牌 N 枚, 到此金牌全部发完。编程求 N 和 M。 --------------------------------------------------------------------------------------------------------------------------- */ /**/ #include int F(int n, int &m) //若 n 天时,有金牌 m 枚;则前一天有金牌 N * 7/6 + N-1 枚, 即 n--天时,m = m/6*7 + n. { if(m%6 == 0){ //因金牌的数量必须为整数,则 m 和 m/6*7 + n 也为整数, 则 m 必须为 6 的整数倍 if(n == 1)return 1; //逆推至第一天时,返回 1,结束 main 函数中的 i 循环 else {n--; m = m/6*7 + n; F(n, m);} //当 n 不是第一天,调用 F,依次向前,并将金牌数存放至&m 中,即 M 中 } else return 0; //当 m 不是 6 的整数倍,返回 0,不结束 i 循环 } void main() { int N, M; for(int i = 1; i; i++) { M = i; //因第 N 天刚好还有金牌 N 枚,可以将 i 赋给 N M,判断是否可以推至第一天 N = i; if(F(N,M)) break; //返回 1,结束循环 } printf("N = %d M = %d\n", N, M); /*//验证 printf("\n 分析:\n"); for(i = 1; i <= N ; i++) { printf("N = %d 时,M = %d\n", i, M); M = (M - i)/7*6; } */ } /* --------------------------------------------------------------------------------------------------------------------------- 2、国王分财产。某国王临终前给儿子们分财产。他把 财产分为若干份,然后给第一个儿子一份,再加上剩余财产的1/10; 给第二个儿子两份,再加上剩余财产的1/10;……;给第i 个儿子i 份, 再加上剩余财产的1/10。每个儿子都窃窃自喜。以为得到了父王的偏 爱,孰不知国王是“一碗水端平”的。请用程序回答,老国王共有几 个儿子?财产共分成了多少份? ------------------------------------------------------------------------------...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

递归算法解答

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部