gpt4 book ai didi

c++ - 序列的递归跟踪输出总和

转载 作者:行者123 更新时间:2023-11-28 07:22:28 25 4
gpt4 key购买 nike

为什么这个递归方法没有给我 2.2833 的答案?

   double m(int i)
{
if (i == 1)
return 1;
else
return (1/i) + m(i -1);
}

int main()
{
double value=m(5);
cout << value << endl;

return 0;
}

我得到的答案是 1?

最佳答案

因为 1/1 是 1 而 1/2 = 0 (1/3 = 0 ....)

所以我们需要做 1.0/(double) i

然后 1.0/2.0 = 0.5

#include <iostream>

double m(int i)
{
if (i == 1)
return 1;
else
return (1.0/(double) i) + m(i -1);
}

int main(int,char**) {
double value=m(5);
std::cout << value << "\n";
return 0;
}

关于c++ - 序列的递归跟踪输出总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19215470/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com