KZ11z @ 2018-10-05 11:14:51
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n=1,k;
cin>>k;
for(double Sn=0;Sn<=k;n++)
Sn=1.0/n+Sn;
cout<<n;
}
为什么不对 感觉和下面的没区别啊
#include<cstdio>
int main() {
int k,n=0;
scanf("%d",&k);
for(double Sn=0;Sn<=k;++n,Sn+=1.0/n);
printf("%d",n);
return 0;
}
by Yoo_ @ 2018-10-05 11:20:01
初始n的变量不一样啊
by KZ11z @ 2018-10-05 11:22:49
@我的智商贼低 他是++n 我是n++
by Yoo_ @ 2018-10-05 11:25:21
没仔细看。。。 你试着改动点东西看看是哪步的问题
by KZ11z @ 2018-10-05 11:28:02
@我的智商贼低 试了很多次,不然我也不敢找大佬帮忙啊......
by Yoo_ @ 2018-10-05 11:31:30
应该是循环那里的问题
by jeffqi @ 2018-10-05 11:39:53
在你的代码中 ++n 改成 n++ 没什么区别
by jeffqi @ 2018-10-05 11:40:24
所以应该是 n 的初值的问题
by 冰峰 @ 2018-11-18 10:29:31
Emmm…
#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;
}