@[执剑人](/space/show?uid=60949) 预判选D233
by Macrohard @ 2018-04-07 13:10:53
@[Macrohard](/space/show?uid=43047) 法法
by 执剑人 @ 2018-04-07 13:13:07
这是我自己写的,没用高精,输出了1010539
```cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
long long a=1;
long double s=0;
while(s<=2016){
s=s+1/(floor(sqrt(a)));
a++;
}
cout<<a<<endl;
return 0;
}
```
by 执剑人 @ 2018-04-07 13:22:39
@[执剑人](/space/show?uid=60949) 我也觉得选D
```cpp
#include<cstdio>
#include<cmath>
int main()
{
long long m=1;
long double s=0;
while(s<=2016)
{
long double x=sqrt(m);
long double t=1.0/x;
s+=t;
m++;
}
printf("%lld",m);
}
```
这个结果是1017538
```cpp
#include<cstdio>
#include<cmath>
int main()
{
long long m=1;
long double s=0;
while(s<=2016)
{
long long x=sqrt(m);
long double t=1.0/x;
s+=t;
m++;
}
printf("%lld",m);
}
```
这个结果是1010539
所以是D了
by Victory_Defeat @ 2018-04-07 13:40:10
1.5^2=2.25,2.5^2=6.25...2.25至6.25间有4个整数,
即平方根最接近2的整数有4个
设f(a)=(a+0.5)^2=a(a+1)+0.25
则f(a+1)=(a+1)(a+2)+0.25
f(a+1)-f(a)=2(a+1)
即平方根最接近a+1的整数有2(a+1)个
1/(a+1)*2(a+1)=2
有1008组和即为2016
算得m=2+4+6+...+1008
=(2+1008)*504/2
=254520~~(怎么感觉有些怪怪的)~~
by Benson2005 @ 2018-04-09 20:35:38