中易网

C语言递归算法问题

答案:3  悬赏:40  
解决时间 2021-04-28 07:40
  • 提问者网友:剪短发丝
  • 2021-04-27 07:04

【例8.5】用递归法计算n!

用递归法计算n!可用下述公式表示:

    n!=1         (n=0,1)

    n×(n-1)!    (n>1)

按公式可编程如下:

long ff(int n)

{

    long f;

    if(n<0) printf("n<0,input error");

    else if(n==0||n==1) f=1;

    else f=ff(n-1)*n;

    return(f);

}

main()

{

    int n;

    long y;

    printf("\ninput a inteager number:\n");

    scanf("%d",&n);

    y=ff(n);

    printf("%d!=%ld",n,y);

}

去掉long ff(int n)函数中的return(f);结果会怎么样?为什么?

最佳答案
  • 二级知识专家网友:情战凌云蔡小葵
  • 2021-04-27 08:14

return(f)返回的就是你求得的n!的值


去掉了这个函数就没意义了,当然y=ff(n)不会有正确结果

全部回答
  • 1楼网友:一起来看看吧
  • 2021-04-27 11:05
那你要把long f()改为void f(),这样就可以去掉return (f);但主函数里面不会有输出结果的
  • 2楼网友:夢想黑洞
  • 2021-04-27 09:28

结果:拿不到 递归的结果。程序报错

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息