turbo_c_2
2014-12-10 07:59
采纳率: 50%
浏览 2.0k
已采纳

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));
}
帮忙看一下!

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

10条回答 默认 最新

  • 已采纳

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

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • lxq_xsyu 2014-12-10 08:19

    #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");
    

    }

    
    
    评论
    解决 无用
    打赏 举报
  • lxq_xsyu 2014-12-10 08:20

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

    评论
    解决 无用
    打赏 举报
  • w810443616 2014-12-10 08:35

    #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));
    }

    评论
    解决 无用
    打赏 举报
  • windsunmoon 2014-12-10 09:30
     #include 
    long f(i)
    {
    if(i==1)
     return 1;
    
    return i*f(i-1);
    }
    main()
    { int i=10;
    printf("factorial=%d",f(i));
    }
    
    
    
    评论
    解决 无用
    打赏 举报
  • qq_22002947 2014-12-10 10:22
    这样就好了吧。。。
    i*f(i-1)的话。。。求的是什么啊。。。
    
        if(i == 0) return 1;
        else return i*f(i-1); 
    
    评论
    解决 无用
    打赏 举报
  • 百曉生 2014-12-10 12:00
     # 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;
    }
    
    评论
    解决 无用
    打赏 举报
  • xiaohuoxiaoer 2014-12-11 02:39

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

    评论
    解决 无用
    打赏 举报
  • 707wk 2014-12-11 11:57

    #include

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

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

    
    
    评论
    解决 无用
    打赏 举报
  • Oraice 2014-12-11 14:21

    /*错误有一下几点: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 ));
    }
    }

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题