氟锂锶氪 @ 2018-02-03 16:24:43
#include<iostream>
using namespace std;
int main(){
int k;//输入的数字
int fz = 1;//分子
int fm = 1;//分母
int n;
cin>>k;
for(int i = 2; k * fm >= fz; i++){
fz = fz * i + fm;
fm = fm * i;
n = i;
}
cout<<n<<endl;
}
手动验证过后似乎并没有发现什么问题……
输入1输出2……输入2输出4……输入3输出11……
by 斗神·君莫笑 @ 2018-02-03 16:37:33
尝试直接double+循环爆
by 氟锂锶氪 @ 2018-02-03 16:41:41
刚又测试了一下输入4的结果是15……貌似不对(不想手算了╮(╯▽╰)╭)
所以……错误在哪儿……
by 斗神·君莫笑 @ 2018-02-03 16:42:00
using namespace std;
int main(){
int k,i=0;
cin>>k;
double s=0;
while(s<=1){
i++;
s+=1.0/i;
}
cout<<i;
return 0;
}
by 斗神·君莫笑 @ 2018-02-03 16:42:49
我在讨论中打的,WA了别怪我
by 氟锂锶氪 @ 2018-02-03 16:52:00
@zadow_sxz
谢谢!至于我原来那一撮代码……刚发现光是fm变量可以达到的位数都超过int精度了(笑哭)
所以……无视就好