您的位置:首页 > 大数据 > 人工智能

2012 Multi-University Training Contest 5-1004 hdu4342

2012-08-07 19:31 337 查看
题目描述:求出第i个非平方数M,以及小于等于M的所有数的开方之和



纯数学题,把公式推出来就OK了

#include <iostream>
#include <cmath>
#include <cstdio>

using namespace std;

int main()
{
int t,a,b;
long long n,m;
while(scanf("%d",&t)!=EOF)
{
while(t--)
{
scanf("%I64d",&n);
a = (int)sqrt(n);
m = n+a;
b = (int)sqrt(m);
while(b-a)
{
m += b-a;
a = b;
b = (int)sqrt(m);
}
n = (long long)2*b*(b-1)*(2*b-1)/6+b*(b-1)/2+(m-b*b+1)*b;
printf("%I64d %I64d\n",m,n);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: