任意次方--精度--zzuli1327

#include<stdio.h>
#include<math.h>
int main()
{
	__int64 a,b;
	while(scanf("%I64d",&a)!=EOF)
	{
		a=a*a;
		b=(int)pow((double)a,1.0/3);
		b++;
		if(b*b*b<=a)
		{
			printf("%I64d\n",a-b*b*b);
		}else if((b-1)*(b-1)*(b-1)<=a)
		{
			printf("%I64d\n",a-(b-1)*(b-1)*(b-1));
		}else if((b-2)*(b-2)*(b-2)<=a)
		{
			printf("%I64d\n",a-(b-2)*(b-2)*(b-2));
		}
	}
	return 0;
}

你可能感兴趣的:(任意次方--精度--zzuli1327)