PROBLEM-4SS
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 241(113 users) Total Accepted: 134(104 users) Rating: Special Judge: No
Description
机智和运气都是哈理工小伙伴高贵的品质。
这次a、b、c、d是在区间(1,N]内的整数,找出所有符合如下关系式的组合。
a^3 = b^3 + c^3 + d^3(b<=c<=d)。
Input
有多组测试数据。
每组输入一个整数N。(0
#include<stdio.h>
int main()
{
int a,b,c,x,y,mid,n;
while(scanf("%d",&n)!=EOF)
{
for(a=6; a<=n; a++)
{
for(b=2; b<=a; b++)
{
for(c=b; c<=a; c++)
{
x=a;
y=c;
while(x>=y)//二分的做法,此时为可以二分的条件
{
mid=(x+y)/2;//取中间值
if(a*a*a>b*b*b+c*c*c+mid*mid*mid)
y=mid+1;//如过b,c,d的三次方之和小于a的三次方,向上二分
else if(a*a*a<b*b*b+c*c*c+mid*mid*mid)
x=mid-1;//如果大于的话,向下二分,直到找到符合条件的为止
else
{
printf("%d^3 = %d^3 + %d^3 + %d^3\n",a,b,c,mid);
break;
}
}
}
}
}
}
return 0;
}