【发布时间】:2020-03-04 19:51:22
【问题描述】:
我正在尝试使用 TAIL recrusion 计算谐波级数,简单的 recrusion 有效但不是终端版本, 这是简单的复习版:
#include<stdio.h>
float calcul(int n)
{if(n==1)
return 1;
else
return (1/float(n)+(calcul(n-1)));
}
main()
{int i,n;float h,t;
t=1;
printf("type in a number :\n");
scanf("%d",&n);
printf("H(%d)= %.3f",n,calcul(n));}
这是 TAIL recrusion,但它不起作用:
#include<stdio.h>
float calcul(int n,float t)
{if(n<2)
return 1;
else
return calcul(n-1,t+(float(1)/float(n)));
}
main()
{int n;
float t;
t=1.00;
printf("type in a number :\n");
scanf("%d",&n);
printf("H(%d)= %.3f",n,calcul(n,t));}
我正在使用 c 请帮帮我:)
【问题讨论】:
-
没有提及所针对的编程语言,也没有提及迄今为止尝试过的代码示例。
-
@tarilabs 很抱歉,现在怎么样?
-
欢迎来到 SO。
THIS is where the problem is:什么有问题吗?您需要描述事物(构建?运行?错误消息?)。您应该阅读其中的一些内容:stackoverflow.com/help/asking。并缩进你的代码,使其可读。 -
而且您似乎混淆了 C 和 C++。那是两种不同的语言。您使用 C 头文件,因此您应该这样标记您的问题。