输出:
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