北京理工大学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. 1 10↵ 1. The sum from 1 to 10 is 55.↵ 1 秒 64M 0 测试用例 2 1. 10 15↵ 1. The sum from 10 to 15 is 75.↵ 1 秒 64M 0 1. int sum(int m,int n) 2. {if(m==n) return m;int i;for(i=n;i>=m;i--) return i+sum(m,i-1);} 3. #include 4. int main(){int m,n,s=0;scanf("%d%d",&m,&n);s=sum(m,n); 5. 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) 当n 2. int f(int x,int y) 3. {int s,t;t=x%y; 4. if(t==0) s=y;else s=f(y,t); 5. return s;} 6. int main() 7. {int m,n;scanf("%d%d",&m,&n); 8. printf("%d\n",f(m,n));return 0;} 51. 【数列递归】求序列之和——...