Max_LS @ 2024-02-04 20:20:55
#include<bits/stdc++.h>
using namespace std;
int main(){
int k,s=0;
cin>>k;
for(int i=1;;i++){
s=s+1/i;
if(s>k){
cout<<i;
return false;
}
}
return 0;
}
by zhouzihang1 @ 2024-02-04 20:23:17
@Z18821938825 1是 int
类型的,int
类型的,所以 1/i
的计算结果为
by 0v_0___SYC @ 2024-02-04 20:37:27
你的代码想要输出就需要s>=1, s每次循环都等于s+1/i,这里会先算1/i,i>=1,所以1/i=0,s永远不会增加,所以不会输出
by 0v_0___SYC @ 2024-02-04 20:39:00
一搜解决这个问题s应该是double型的
by 0v_0___SYC @ 2024-02-04 20:39:36
并且i的前面要加(double)
by djtbsq @ 2024-02-06 15:08:53
请问一下提问的时候怎么标记代码
by Wuhongyi17 @ 2024-02-08 02:43:25
print("这是代码")
格式:``` [输入内容] ```
by Wuhongyi17 @ 2024-02-08 02:53:12
#include<bits/stdc++.h>
using namespace std;
int main(){
int k,s=0; //把这里的int改为float
cin>>k;
for(int i=1;;i++){
s=s+1/i; //可以改为 s+=1.0/i
if(s>k){
cout<<i;
return false;
}
}
return 0;
}
主要是整形和浮点型的问题