黑马程序员技术交流社区
标题:
亲们,进来看看这个题吧!
[打印本页]
作者:
黄方
时间:
2012-2-27 15:07
标题:
亲们,进来看看这个题吧!
又来一题了哦,感兴趣的写写!别因为题长儿胆怯了哦
考虑方程式:a^3 + b^3 = c^3 + d^3其中:“^”表示乘方。a、b、c、d是互不相同的小于30的正整数。这个方程有很多解。
比如:a = 1,b=12,c=9,d=10 就是一个解。
因为:1的立方加12的立方等于1729,而9的立方加10的立方也等于1729。
当然,a=12,b=1,c=9,d=10 显然也是解。如果不计abcd交换次序的情况,这算同一个解。
你的任务是:找到所有小于30的不同的正整数解。
把a b c d按从小到大排列,用逗号分隔,每个解占用1行。比如,刚才的解输出为:1,9,10,12不同解间的顺序可以不考虑。{:soso_e121:}
作者:
唐学松
时间:
2012-2-27 15:17
class a
{
public static void main(String[] args)
{
int a,b,c,d , s[4]={0,0,0,0}, i,j, t, flag=0;
for(a=0;a<30;a++) //A的取值不大于30
{
for(b=0;b<30;b++) //B的取值不大于30
{
for(c=0;c<30;c++) //C的取值不大于30
{
for(d=0;d<30;d++) //D的取值不大于30
if((a*a*a+b*b*b==c*c*c+d*d*d)&&a!=b&&b!=c&&c!=d&&a!=c&&a!=d&&b!=d)
//判断a^3+b^3=c^3+d^3,A,b,c,d是否小于30,是否不同的正整数
{
s[1]=a;
s[2]=b;
s[3]=c;
s[4]=d;
}
for(i=0;i<3;i++) //排序
{
for(j=0;j<3-i;j++)
if(s[j]<s[j+1])
{
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
}
for(i=0;i<4;i++) //输出
System.out.printf(s[i]);
System.out.printf("\t");
flag++;
if(flag==3) //控制一行输出个数
{
flag=0;
System.out.printf(" ");
}
}
}
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2