// http://acm.hdu.edu.cn/showproblem.php?pid=2551
#include<stdio.h>
int main()
{
__int64 a[1001]={0},sum=0,x,i;
int t;
for(i=1;i<=1000;i++)
{
sum+=i*i*i;
a[i]=sum;
}
while(scanf("%d",&t)!=EOF)
{
while(t--)
{
scanf("%I64d",&x);
for(i=1;1;i++)
if(a[i-1]<=x && a[i]>=x)
break;
printf("%I64d\n",i);
}
}
return 0;
}
// 这下面一种可能更好,只是用到了那个立方和的公式,而且不要很大的空间
#include<stdio.h>
int main()
{
__int64 x,i;
int t;
while(scanf("%d",&t)!=EOF)
{
while(t--)
{
scanf("%I64d",&x);
for(i=1;1;i++)
if(i*i*(i+1)*(i+1)/4>=x)
{
printf("%I64d\n",i);
break;
}
}
}
return 0;
}
hdu 2552
最新推荐文章于 2020-04-12 10:33:34 发布