123456789 【程序填空】 题目:下面程序的功能是用递归法求n!. #include <stdio.h> /***********SPACE***********/ long fac (int) ; void main () 1415161718 } int n;long yjprintf ("input an integer number: ") ;scanf ("%d", &n) ;if (n <0)printf ("n <0,data error! ") ; else[ 2324 ***********3** y=long fac (int) # ;fac (n) #;fac (n-1) *n;printf ("%d! =%1d\n",n,y) ;I long fac (int n) 333435363738394041 } long f;if (n==0||n==1)f=1;else/***********SPACE***********/f=n*fac (n-1) ;return (f) ; 程序填空 - 第1题 - 10. 0 关闭 <<答题说明>>
时间: 2023-08-02 13:07:53 浏览: 70
下面是填空部分的答案:
```c
long fac(int n)
{
long f;
if (n == 0 || n == 1)
f = 1;
else /************SPACE***********/
f = n * fac(n - 1);
return (f);
}
```
相关问题
程序填空题 1、以下程序以递归法求Fibonacci数列(0,1,1,2,3,5,8.......)第n项值 #include <stdio.h> long fibonacci(int n); void main() { int x=0; long result; scanf("%d",&x) result= ① ; printf("fibonacci(%d)=%ld\n",x,result); } long fibonacci(int n) { if( ② ) return n; else ③ ; }程序填空,我要详细的c语言代码
完整的程序如下:
```c
#include <stdio.h>
long fibonacci(int n);
void main() {
int x = 0;
long result;
scanf("%d", &x);
result = fibonacci(x);
printf("fibonacci(%d)=%ld\n", x, result);
}
long fibonacci(int n) {
if (n <= 1)
return n;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
```
程序填空部分的答案如下:
①:fibonacci(x)
②:n <= 1
③:return fibonacci(n-1) + fibonacci(n-2);
Ackermann函数定义如下: Ackermann(0,n)=n+1; Ackermann(m,0)=Ackermann(m-1,1); Ackermann(m,n)=Ackermann(m-1,Ackermann(m,n-1)) */ //下述程序实现用递归法求Ackermann(2,3),请填空 #include<stdio.h> void main() { int m,n; double Ackermann(int m,int n); y; m=2; n=3; y=Ackermann(m,n); printf("%.0lf ",y); } double Ackermann(int m,int n) { double y; printf("Ackermann(%d,%d) ",m,n); if() { y=n+1; } if(n==0&&m!=0) { y=Ackermann(,1); } if(m!=0&&n!=0) { y=Ackermann(m-1,(m,)); } return(y); }
正确的填空应该是:
```
#include <stdio.h>
double Ackermann(int m, int n);
int main() {
int m, n;
double y;
m = 2;
n = 3;
y = Ackermann(m, n);
printf("%.0lf ", y);
return 0;
}
double Ackermann(int m, int n) {
double y;
printf("Ackermann(%d,%d) ", m, n);
if (m == 0) {
y = n + 1;
} else if (n == 0 && m != 0) {
y = Ackermann(m - 1, 1);
} else if (m != 0 && n != 0) {
y = Ackermann(m - 1, Ackermann(m, n - 1));
}
return y;
}
```
在 `main` 函数中,调用 `Ackermann` 函数,并将结果输出。在 `Ackermann` 函数中,根据 Ackermann 函数的定义,采用递归的方式进行计算,并输出中间结果。最终返回 Ackermann(m,n) 的结果。
阅读全文