c语言函数递归求阶乘的问题 求助大佬们 递归函数c语言阶乘
更新时间:2021-10-31 10:50:35 • 作者:DIANA •阅读 2320
C语言中递归函数求n的阶乘中的问题
求n的阶乘时终止条件的判断if(n==1)时返回1的话,求0!就变成没有定义了。
C语言用递归解决阶乘问题
#include <stdio.h>
int fac(int n)
{
if(n>1)
return n*fac(n-1);
return 1;
}
int main()
{
int n;
scanf("%d",&n); // input n
printf("%d\n",fac(2*n+1));
return 0;
}
直接敲的,有bug自己调一下哈哈哈^_^
c语言中递归的问题(计算阶乘......)
小错误,你1和后面的递归写反了,修改后如下
#include<stdio.h>
long fact(long n)
{
return n?n*fact(n-1):1;
}
int main()
{
printf("%ld\n",fact(10));
}
c语言递归求阶乘的问题,我不知道哪里错了,求大神解答
#include
int re(int n);
void main()
{
int n = 0;
long c;
scanf("%d",&n);
c = re(n);
printf("阶乘的最后值为:%ld",c);
}
int re(int n)
{
long r;
if(n < 0)
{
printf("n<0,error");
}
else if(n == 0|| n == 1)
{
r = 1;
}
else
{
r = re(n-1)*n;
}
return r;
}
程序大的错误没有,就是你的scanf用错了,详情看看我改后的程序!
在scanf只能跟输入格式符 %d%f%c%f 等等! 记得要给变量取地址!