當前位置:編程學習大全網 - 編程軟體 - 這道簡單的JAVA算法題怎麽做

這道簡單的JAVA算法題怎麽做

import?java.util.ArrayList;

import?java.util.Arrays;

import?java.util.HashMap;

import?java.util.List;

import?java.util.Map;

public?class?Test6?{

//1487,?4817,?8147這個序列,每個比前壹個遞增3330,而且這個序列有兩個特點:

//1.?序列中的每個數都是質數。2.?每個四位數都是其他數字的壹種排列。

static?List<Integer>?list?=?new?ArrayList<Integer>();

static?Map<Integer,?Integer>?map=new?HashMap<Integer,?Integer>();

public?static?void?getAllPrime()?{

for(int?i=1000;i<10000;i++)

for(int?j=2;j<Math.sqrt(i);j++){

int?temp=(int)?Math.sqrt(i);

if(i%j==0)

break;

if(temp==j){

map.put(i,?i);

list.add(i);

}

}

}

public?static?void?printResult()?{

for(int?i=0;i<list.size();i++){

for(int?j=i+1;j<list.size();j++){

int?middle=(list.get(i)+list.get(j))/2;

if(i!=j&&(map.get(middle)!=null)){

char[]?min=(""+list.get(i)).toCharArray();

char[]?middle1=(""+middle).toCharArray();

char[]?max=(""+list.get(j)).toCharArray();

Arrays.sort(min);

Arrays.sort(middle1);

Arrays.sort(max);

if(isEqual(middle1,?min,?max))

System.out.println(?list.get(i)+"\t"+middle+"\t"+list.get(j));

}

}

}

}

public?static?boolean?isEqual(char[]a,char[]b,char[]c)?{

if(a[0]==b[0]&&b[0]==c[0]&&a[1]==b[1]&&b[1]==c[1]

&&a[2]==b[2]&&b[2]==c[2]&&a[3]==b[3]&&b[3]==c[3]){

return?true;

}

return?false;

}

public?static?void?main(String[]?args)?{

getAllPrime();

printResult();

}

}額,代碼寫的好醜陋,不過算是出結果了

  • 上一篇:R5 4600u 256g 4核夠學習前端嗎?
  • 下一篇:啊有誰能告訴我紡織行業的紡織管理軟件有哪些啊?倉庫出入庫方面的,網上有教程嗎?
  • copyright 2024編程學習大全網