level 9
小弟的作业,一个小题目,几乎做完了,但是还是有点问题,求大神帮我加段代码,完善它
2013年04月19日 08点04分
1
level 9
public class Ti8 {
/** * 考虑方程式: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不同解间的顺序可以不考虑。 */
public static boolean fa(int a,int b,int c,int d){
if(Math.pow(a, 3)+Math.pow(b, 3)==Math.pow(c, 3)+Math.pow(d, 3)){return true;}
return false;
}
public static int[] paixu(int a,int b,int c,int d){
int array[]={a,b,c,d};
for(int i=0;i<array.length;i++){
for(int j=i;j<array.length;j++){
if(array[i]>array[j]){
int temp;temp=array[i];
array[i]=array[j];
array[j]=temp;
}}}
return array;}
public static void main(String[] args) {
for(int a=0;a<31;a++){
for(int b=0;b<31;b++){
for(int c=0;c<31;c++){
for(int d=0;d<31;d++){
if(a!=b &&a!=c&& a!=d && b!=c && b!=d&& c!=d && fa(a,b,c,d)){
int aaa[]=paixu(a,b,c,d);
for(int aa:aaa){System.out.print(aa+" ");}
System.out.println();
}}}}}}
}
2013年04月19日 08点04分
3
在 for(int b=0;b<31;b++){下面加上if (b <= a) continue;[$1]在 for(int c=0;c<31;c++){ 下面加上if (c <= a) continue;在 for(int d=0;d<31;d++){下面加上 if (d <= c) continue;
2013年04月19日 09点04分