這難寫的要死的作業是怎麼回事阿~~~~~!

================================
請建立一個目錄,並將您的程式放於該目錄下
請根據您的目錄名稱,正確指定各類別的所屬套件
目錄與主類別命名規則: s+學號 (以一位同學為代表)
所以我在主程式 evaluater.java 所在的資料夾中新增了一個 s9458050 資料夾
然後在 s9458050 資料夾中 新增一JAVA檔案 s9458050.java

內容如下:
-----------------------------------------------------------------------------------------------------

package s9458050;
import objs.*;
import objs.cls.*;

public class s9458050 implements AnswerNumber{
 TeamMember team = new TeamMember("9458050");
 NumberBall nball;
 boolean[] b = new boolean[5040];
 String[] ansary = new String[5040];
 String sss;
 int times = 0;
 
 public TeamMember getTeamMember(){
  return team;
 }
 
 public NumberBall getNewBall(){
  return new NumberBall(generateNumber());
 }
 
 public void xAyB(NumberBall nb){
  nball = nb;
  sss = nball.toString();
  int reada = sss.charAt(8) - '0';
  int readb = sss.charAt(10) - '0';
  for(int x=0;x<5040;x++){
      if(!b[x]) continue;
     if(Ast(ansary[x],sss)!=reada || Bnd(ansary[x],sss)!=readb)
      b[x] = false;
     }
 }
 
 public void init(){
  for(int q=0;q<5040;q++)
   b[q] = true;
 }

    public int[] generateNumber() {  
     String s = "";
     int[] digits = new int[4];
     int[] p = new int[10];
     int runtime = 0;
     if(times == 0){
     int st=0;
     for (int n1=0; n1<10; n1++) {
       for (int n2=0; n2<10; n2++) {
        if ( n2 == n1)
          continue;
        for (int n3=0; n3<10; n3++) {
          if (n3 == n2 || n3 == n1 )
            continue;
          for (int n4=0; n4<10; n4++) {
            if ( n4==n1 || n4==n2 || n4==n3)
              continue;
            ansary[st] = Integer.toString(n1)+n2+n3+n4;
            st++; 
          }}}}                
  for(int r=0;r<5040;r++)
       b[r] = true;
     }  
        
     alio:{
   while(true){
    //System.out.print(runtime);
    if(runtime >= 5){
     for (int i=0; i<5040; i++) {
          if (!b[i]) continue;
         for(int y=0;y<4;y++){
          digits[y] = ansary[i].charAt(y)-'0';
         }
         break alio;
      }
    }
      for(int i=1; i<=4; i++) {
        int d;
         do {
           d = (int)(Math.random()*10);
         } while(p[d]!=0);
       p[d] = i;
       digits[i-1] = d;
       s += Integer.toString(d);
     }
     alio2:{
     for(int j=0;j<5040;j++){
   if(ansary[j].equals(s)){
    if(b[j]){
     break alio;}
    else{
     s = "";
     //System.out.println("alio2");
     break alio2;}
   }
  }  
  }
  for(int t=0;t<10;t++)
   p[t] = 0;
  runtime++;
 }
 }
 times++;
 runtime = 0;
 return digits;
   }
    public static int Ast(String s1,String s2){
     
     int a = 0;
     for(int i=0;i<4;i++){
      if(s1.charAt(i) == s2.charAt(i))
       a++;
     }
     return a;
    }
    public static int Bnd(String s1,String s2){
     int b = 0;
     for(int i=0;i<4;i++){
      for(int j=0;j<4;j++){
       if(i==j)continue;
       if(s1.charAt(i) == s2.charAt(j))
        b++;
      }
     }
     return b;
    }
}

真懷念去年,老師說因為找不到適合練習繼承的題目所以上機考取消XDXD


--------------------------------------------------------------------------------------------

我只是個專業的「家裡蹲」!(Neet)


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 steven70101 的頭像
    steven70101

    老人家的舊書房

    steven70101 發表在 痞客邦 留言(1) 人氣()