一个 代数题

来源:互联网 发布:js 10秒刷新一次 编辑:程序博客网 时间:2024/04/18 08:13

 四个不同自然数a <b <c <d 满足a^2+b^2+c^2+d^2=abcd,列出1亿内的所有组合

 

. 四个不同自然数a <b <c <d 满足a^2+b^2+c^2+d^2=abcd,列出1亿内的所有组合。
分析:
a[0]^2+a[1]^2+a[2]^2+a[3]^2=a[3]*(10^k+0)+a[2]*(10^k+1)+a[1]*(10^k+2)+a[0]*(10^k+3)
                            ------------d-------------c--------------b-------------a

<100,000,000
设 num=abcd


int num //记数


a[3]*(10^k+0)+a[2]*(10^k+1)+a[1]*(10^k+2)+a[0]*(10^k+3)=num  |

a[0]^2+a[1]^2+a[2]^2+a[3]^2=num                              |      num< 10^8

a[0]<a[1]<a[2]<a[3]                                          |


a=a[0] =mun -a[3]*(10^k+0)+a[2]*(10^k+1)+a[1]*(10^k+2) =a[0]*(10^k+3)  /求出A
b=a[1]   .
c=a[2]   .
d=a[3]   .

-----------------------------------------------------------------------------------
class NUM
{
 public class min(){
 int k //指数常量
 string a[i]
 for (i=0;i<3;i++){
   for {
     a[0]<a[1]<a[2]<a[3] ;
     
       }
 

 do (num = 0 ,num < 10^8,num++ )
 { 
   temp = a[0]*(10^k+3) ;
   {
     temp1.do()
       }
  
}
will
{
mun = a[3]*(10^k+0)+a[2]*(10^k+1)+a[1]*(10^k+2)+a[0]*(10^k+3)
}
system.out.priteln("THE NUMBER IS+ "+ num);
}
-----------------------------------------------
abstract class temp{
 int temp(temp =1;temp<1*10^8;temp++);
 
  temp.do();
}

class temp1 extends temp{
 temp = a[0]*(10^k+3) ;
  temp1 = new temp;
  temp1.do (){
swich(k=0;k<8;k++){
  case1:
   temp1 =a[0]*(10^k+3);
    system.out.priten("a是:"+temp1);
  csae2:
    temp1 =a[1]*(10^k+2);
 system.out.priten("b是:"+temp1);
 csae3:
    temp1 =a[2]*(10^k+1);
 system.out.priten("c是:"+temp1);
 csae3:
    temp1 =a[3]*(10^k+0);
 system.out.priten("d是:"+temp1);
  }

}

}

高手看看我思路对吗?

我想的是(定长)枚举

 

原创粉丝点击