n! 的递归与非递归实现

非递归

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>
int main(){
int n,s;
s=1;
printf("请输入用于做阶乘运算的整数:n");
scanf("%d",&n);
while(n>0)
{
s=s*n;
n--;
}
printf("阶乘结果为:%dn",s);
return 0;
}

递归

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
int jc(n)
{
if(n<=1)
return 1;
else
return n*jc(n-1);
}
int main(){
int n,s;
printf("请输入用于做阶乘运算的整数:n");
scanf("%d",&n);
s=jc(n);
printf("阶乘结果为:%dn",s);
return 0;
}