c137chen 2021-07-01 19:57 采纳率: 100%
浏览 56
已采纳

c++ 无论输入什么输出都是1,哪里出现问题?

img

#include using namespace std;

int f1(int j,float i) { if (j == 0) { return 1; } else { return f1(j - 1,i) * (j / (2*j +1)); } }

int main() { int j; float result;

float i;
cin >>i ;
for (j=0;f1(j,i)>i;j++)
    result += f1(j,i);
cout <<  result <<endl;
return 0;

}

  • 写回答

2条回答 默认 最新

  • 浪客 2021-07-01 21:04
    关注
    #include <iomanip>
    #include <iostream>
    using namespace std;
    
    int main()
    {
        long long dx = 1, dy = 1, n = 1;
        double i, sum = 0, result;
        cin >> i;
    
        while (1)
        {
            if (n > 2)
                dx *= n - 1;
            dy *= 2 * (n - 1) + 1;
            result = dx * 1.0 / dy;
            sum += result;
            if (result < i)
                break;
            n++;
        }
    
        cout << setprecision(11) << sum * 2 << endl;
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?