c语言项目实验作业5答案,北理工C语言编程网上作业答案(5)

本文介绍了递归算法的应用,包括最大公约数的计算、特定数列求和及序列求值等典型问题的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

输出:

n和m的最大公约数

1. #include 2. int gcd(int m,int n) 3. { int r; 4. r=m%n;

5. return r==0?n:gcd(n,r); 6. }

7. int main() 8. { int m,n;

9. scanf(\,&m,&n); 10. printf(\,gcd(m,n)); 11. return 0; 12. }

40 求序列之和——递归

成绩: 5 / 折扣: 0.8

请使用递归算法求下列序列的前n项之和。 1 + 1/2 - 1/3 + 1/4 -1/5 ...... 输入: n

输出:

序列的前n项和(精确到小数点之后第6位) 1. #include\ 2. int main() 3. {int n;

4. double SUM(int); 5. scanf(\,&n);

6. n==1?printf(\):printf(\,SUM(n)); 7. return 0; 8. }

9. double SUM(int n) 10. {if(n==2) return 1+1.0/n; 11. else if(n%2) return -1.0/n+SUM(n-1); 12. else return SUM(n-1)+1.0/n; 13. }

44. 函数递归

成绩: 10 / 折扣: 0.8

编写一个函数,使用递归算法求满足下述定义的整数序列的第n项。 f( n ) =

1

f(n-1) + f(n-3) f(n-2) + f(n-4) -1

当 n >= 0 且 n <= 4 时 当 n > 4 且n为偶数 时 当 n > 4 且n为奇数 时 其他

函数原型如下:

int findf(int n);

参数说明:n 项数;返回值是第n项值。 例如输入:10,输出:8

预设代码 前置代码

view plaincopy to clipboardprint?

1. 2. 3. 4. 5. 6. 7. /* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */

#include

int main()

{ int n,s, findf( int ); scanf(\, &n);

8. s = findf(n);

9. printf(\, s); 10. return 0; 11. } 12. 13. /* PRESET CODE END - NEVER TOUCH CODE ABOVE */

1. int findf(int n) 2. {

3. int i;

4. if(n>=0&&n<=4) i=1;

5. if(n>4&&n%2==0) i=findf(n-1)+findf(n-3); 6. if(n>4&&n%2==1) i=findf(n-2)+findf(n-4); 7. if(n<0) i=-1; 8. return i; 9. }

#includemain() {

int m,n,a,i,j,s=0;

printf(\scanf(\int b[m][n]; if(m>n) { i=m; m=n; n=i; s=1; }

int c[m][n]; for(i=0;i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值