求问为什么过不了数据

P1035 [NOIP2002 普及组] 级数求和

陈宸辰尘 @ 2018-10-21 12:46:19

include<iostream>

using namespace std; int main() { int i=1; int k; double sum=0; cin>>k; while(sum<=k) { sum+=1.0/i; ++i; } cout<<i; return 0; }


by deleted @ 2018-10-21 13:01:49

希望更丰富的展现?使用Markdown 发表回复


by 袁昊 @ 2018-10-27 14:55:12

@陈宸辰尘 i是整形的,你换成double型的


by AmazingNut @ 2018-10-28 00:46:17

应该输出i-1吧


by 冰峰 @ 2018-11-18 10:26:24

#include<iostream>
using namespace std;
int main(){
    int n=0,k;       //计数器,目标数字 
    double Sn=0;     //式子的值
    cin>>k;          //输入k值
    while(Sn<=k){    //当Sn的值不大于k的值时进行循环
        n++;         //每次循环,将分母的值+1;
        Sn=Sn+(1.0/n);
       //给Sn加入一个项,该项的分母比前一项大1。
    }
    cout<<n;         //Sn>k后,跳出循环,输出n值
    return 0;
} 

|