yameng @ 2019-10-03 22:22:09
int main() { int N,K; double Sn=0; scanf("%d",&K); for ( N = 0 ; Sn <= K ; N++) Sn = Sn + 1.0/N; printf ("%d",N); return 0; }
by t162 @ 2019-10-03 22:22:21
希望更丰富的展现?使用Markdown
by Rainy_chen @ 2019-10-03 22:23:52
N=0时你做了一次Sn=Sn+1.0/N。。。
by awa再也不水贴 @ 2019-10-03 22:36:16
include <stdio.h>
int main()
{
int N,K;
double Sn=0;
scanf("%d",&K);
for (N=0;Sn<=K;N++)
//Sn=Sn+1.0/N; 这里错的
Sn+=1.0/n;
printf("%d",N);
return 0;
}
by awa再也不水贴 @ 2019-10-03 22:38:13
#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 awa再也不水贴 @ 2019-10-03 22:38:40
所以 你抄的题解 对吧 稍微改了一下
by JasonZRY @ 2019-10-04 08:05:50
#include<stdio.h>
int N,K;
double Sn;
int main(){
scanf("%d",&K);
while(Sn<=K)Sn+=1.0/(++N);
printf("%d",N);
return 0;
}
by yameng @ 2019-10-07 20:17:32
@xiaojie233a
Sn=Sn+1.0/N; Sn+=1.0/n; 这两个的意思不是一样的么,有什么区别么,新手不懂qwq
by awa再也不水贴 @ 2019-10-16 21:11:04
@yameng (⊙o⊙)…额
好吧
我没看清
认真分析一下
这是你的代码
include <stdio.h>
int main() {
int N,K;
double Sn=0;
scanf("%d",&K);
for ( N = 0 ; Sn <= K ; N++)
Sn = Sn + 1.0/N;
printf ("%d",N);
return 0;
}
这个是答案
#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;
}
我们再来把化简的答案翻成稍微容易懂得的
#include<cstdio>
int main(){
int k,n=0;
double Sn;
scanf("%d",&k);
for(Sn=0;Sn<=k;Sn=Sn)//首先循环变量是Sn,你的Sn小于k,不代表n小于k,其他地方基本没有错了!ヾ(◍°∇°◍)ノ゙加油吧!!
{
//Sn=Sn纯粹为了把代码写易懂点,简单来说就是什么都不做
n++;
Sn=Sn+1.0/n;//这里是没有错的,汗颜...
}
printf("%d",n);
return 0;
}