#include using namespace std;int main(){
int n = 1,limit;
double sum = 0;
cin >> limit ;
while (sum <= limit)
{
sum += 1/n;
n++;
}
cout << "n=" << n<<"sum="<<sum ; return 0;}
2 回答

猛跑小豬
TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
sum += 1/n;
這里是整除
應(yīng)該是
sum += 1.0/(double)n;
還有
double sum = 0;
這里分號(hào)是全角的
另外似乎sum是收斂的,所以輸入limit不能很大
完整程序
#include <iostream> using namespace std; int main() { int n = 1,limit; double sum = 0; cin >> limit ; while (sum <= limit) { sum += 1.0/(double)n; n++; } cout << "n=" << n<<",sum="<<sum ; return 0; }
你輸入一個(gè)10,輸出
n=12368,sum=10
以上上機(jī)測(cè)試通過。

肥皂起泡泡
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超6個(gè)贊
你這是無限循環(huán)下去,存儲(chǔ)sum的值是一定的,所以不會(huì)有結(jié)果,也可能崩掉。
- 2 回答
- 0 關(guān)注
- 659 瀏覽
添加回答
舉報(bào)
0/150
提交
取消