c语言递归求阶乘 ,不知道哪里不对

递归求阶乘出问题了
#include
long f(i)
{ long f=1;
while(i>=1)
f*=f(i-1);
return f;
}
main()
{ int i=10;
printf("factorial=%d",f(i));
}
帮忙看一下!

c

10个回答

= =你的i传进去 就是为了判断的吗?
while(i>1)
f=i* f(i-1)

你试试这个, 1*2*3*4......*n

#include

long f(int i){
if(i == 1)
return 1;
else
i*= f(i-1);
return i;
}

int main(){
int i = 10;
printf("factorial=%d", f(i));

scanf("%d");

}


#include
long fun(int i)
{
long f = i;
if(i == 1)
return 1;
f *= fun(i-1);
return f;
}
main()
{
int i = 10;
printf("factorial=%d",f(i));
}

 #include 
long f(i)
{
if(i==1)
 return 1;

return i*f(i-1);
}
main()
{ int i=10;
printf("factorial=%d",f(i));
}


这样就好了吧。。。
i*f(i-1)的话。。。求的是什么啊。。。
    if(i == 0) return 1;
    else return i*f(i-1); 
 # include <stdio.h>

int f(int i)
{ 
    int t = i; 
    if (1 == i)
    {
        return 1;
    }

    t *= f(i-1);

    return t;
}

int main(void)
{ 
    int i=10;
    printf("factorial=%d\n",f(i));

    return 0;
}

#include
long f(int i)
{ long a=1;
a*=f(i-1);
return a;
}
main()
{ int i=10;
printf("factorial=%d",f(i));
}

#include

int funiction(int num)
{
if(!num)return 1;
return num*funiction(num-1);
}

int main()
{
printf("factorial=%d",funiction(10));
return 0;
}


/*错误有一下几点:1.函数包含的输入输出头文件没有。2.实参的内容传递给形参时,实参的变量不能与形参的重名,毕竟形参是复制的实参里的值。*/
#include"stdio.h"

long factorial(long number);
int main(){
int i;

for(i = 0; i < 10; i++){
    printf("%ld\n", factorial(i));
}

return 0;

}
long factorial(long number){
if(number <= 1){
return 1;
}else{
return (number * factorial(number -1 ));
}
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐