北京理工大学2013级的C程序设计非信息类答案part2.doc

北京理工大学2013级的C程序设计非信息类答案part2.doc

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京理工大学2013级的C程序设计非信息类答案part2

北京理工大学2013级C程序设计非信息类答案part 2 49. 【小学递归】杀鸡用牛刀——要用递归啊! 成绩 5 开启时间 2014年05月10日 星期六 14:00 折扣 0.8 折扣时间 2014年05月24日 星期六 23:55 允许迟交 否 关闭时间 2014年06月1日 星期日 23:55 背景:? 哈哈!我们终于学了递归了,现在大家一定感到非常有意思吧,那个典型的“汉诺塔”问题,一个非常短的程序居然可以完成如此复杂的工作,真是神奇啊!来吧,让我们也动手编写一个递归程序,当然,我们要编写的不可能太复杂。 功能:?求整数 n 到 m 区间的累加和,其中n=m。输入: 区间的起始点n? ?区间的终止点m 输出:??? 累加和 要求: 使用递归算法完成。如此简单的题目当然要有隐含的测试用例啦,就3个,看看谁能猜出来。 ? 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 1?10? The?sum?from?1?to?10?is?55.? 1秒 64M 0 测试用例 2 10?15? The?sum?from?10?to?15?is?75.? 1秒 64M 0 int?sum(int?m,int?n) ?? {if(m==n)?return?m;int?i;for(i=n;i=m;i--)?return?i+sum(m,i-1);} ? #include?stdio.h ?? int?main(){int?m,n,s=0;scanf(%d%d,m,n);s=sum(m,n); ?? printf(The?sum?from?%d?to?%d?is?%d.\n,m,n,s);return?0;}?? 50. 【中学】求最大公约数——递归 成绩 5 开启时间 2014年05月10日 星期六 14:00 折扣 0.8 折扣时间 2014年05月24日 星期六 23:55 允许迟交 否 关闭时间 2014年06月1日 星期日 23:55 请使用递归算法计算正整数n和m的最大公约数GCD(n,m)。    ???????? = m??????????? ?当 m=n 且 n mod m =0 GCD(N,M) = GCD(m,n)? ?当nm时 ????????????????? = GCD(m, n mod m)??? ?其他 输入: n和m 输出: ? n和m的最大公约数 ? 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 24?48? 24? 1秒 64M 0 测试用例 2 13?15? 1? 1秒 64M 0 #include?stdio.h ?? int?f(int?x,int?y) ?? {int?s,t;t=x%y; ?? if(t==0)?s=y;else?s=f(y,t); ?? return?s;} ?? int?main() ?? {int?m,n;scanf(%d%d,m,n); ?? printf(%d\n,f(m,n));return?0;} 51. 【数列递归】求序列之和——递归 成绩 5 开启时间 2014年05月10日 星期六 14:00 折扣 0.8 折扣时间 2014年05月24日 星期六 23:55 允许迟交 否 关闭时间 2014年06月1日 星期日 23:55 请使用递归算法求序列1 + 1/2 - 1/3 + 1/4?-1/5 ......的前n项之和。 输入:n 输出:序列的前n项和(精确到小数点之后第6位) ? 测试输入 期待的输出 时间限制 内存限制 额外进程 测试用例 1 1? 1? 1秒 64M 0 测试用例 2 2? 1.500000? 1秒 64M 0 测试用例 3 3? 1.166667? 1秒 64M 0 #includestdio.h ?? float?sum(int?n) ?? {float?s;if(n==1)?s=1.0; ?? else?if(n%2==0)?s=sum(n-1)+1.0/n; ?? else?s=sum(n-1)-1.0/n;return?s;} ?? int?main() ?? {int?n;float?s;scanf(%d,n); ?? if(n==1)?printf(1\n); ?? else?{s=sum(n);printf(%.6f\n,s);}}?? 52. 【大学】函数递归* 成绩 5 开启时间 2014年05月10日 星期六 14:00 折扣 0.8 折扣时间 2014年05月24日 星期六 23:55 允许迟交 否 关闭时间 2014年06月1日 星期日 23:55 编写一个函数,使用递归算法求

文档评论(0)

ayangjiayu3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档