11.3-11.10未一次ac题目(2017)

来源:互联网 发布:java静态变量 定义 编辑:程序博客网 时间:2024/06/05 01:29

p45级数求和

题目大意:输入m,求使 s=1+1/2+1/3+……+1/n的值大于y 的最小的n值

其实这题是灰常水的,用我们岳老师的话来说叫过年

可是本蒟蒻掉进了坑

#include<bits/stdc++.h>
using namespace std;
int y;
long long i=0;
double s=0;
void sr()
{
scanf("%d",&y);
}
void qh(int d)
{
while(d>s)
{
i++;
s=s+1/i;
}
}
void sc()
{
printf("%d",i); 
}
int main()
{
sr();
qh(y);
sc();
return 0;
}

非常完美的程序,思路:用while模拟,符合条件截取i,可就是掉进了坑

s=s+1/i;

就是这行程序 进入了死循环 没有强制转换,所以是int类型,所以除了第一次以后都变成了0

把这行改成 s=s+1.0/i ac了

终于明白老师说的细心有多么重要

原创粉丝点击