返回列表 發帖

TQC104 - 河洛之數

本帖最後由 tonyh 於 2013-3-30 17:02 編輯

範圍 1~9 之不重覆亂數, 以3x3的矩陣排列, 不論橫向縱向及對角線加起來的和都是15.
  1. public class tqc104
  2. {
  3.     public static void main(String args[])
  4.     {
  5.          int n[]=new int[9];
  6.          while(true)
  7.          {
  8.              for(int i=0; i<9; i++)
  9.              {
  10.                   n[i]=(int)(Math.random()*9)+1;
  11.                   for(int j=0; j<i; j++)
  12.                   {
  13.                        if(n[i]==n[j])
  14.                        {
  15.                             i--;
  16.                             break;
  17.                        }
  18.                   }
  19.              }
  20.              if(n[0]+n[1]+n[2]==15 &&
  21.                 n[3]+n[4]+n[5]==15 &&
  22.                 n[6]+n[7]+n[8]==15 &&
  23.                 n[0]+n[3]+n[6]==15 &&
  24.                 n[1]+n[4]+n[7]==15 &&
  25.                 n[2]+n[5]+n[8]==15 &&
  26.                 n[0]+n[4]+n[8]==15 &&
  27.                 n[2]+n[4]+n[6]==15)
  28.              break;
  29.          }
  30.          System.out.println("答案為:");
  31.          System.out.println(n[0]+" "+n[1]+" "+n[2]);
  32.          System.out.println(n[3]+" "+n[4]+" "+n[5]);
  33.          System.out.println(n[6]+" "+n[7]+" "+n[8]);
  34.          System.out.println("不論橫向縱向及對角線加起來的和都是 15");
  35.     }
  36. }
複製代碼

  1. public class tqc104
  2. {
  3.     public static void main(String args[])
  4.     {
  5.         System.out.println("答案為:");
  6.         int num[]=new int [9];
  7.         while(true)
  8.         {
  9.          for(int i=0; i<9; i++)
  10.          {
  11.             num[i]=(int)(Math.random()*9+1);
  12.             for(int j=0; j<i; j++)
  13.             {
  14.                 if(num[i]==num[j])
  15.                 {
  16.                     i--;
  17.                     break;
  18.                 }
  19.             }
  20.          }
  21.               if(num[0]+num[1]+num[2]==15 && num[3]+num[4]+num[5]==15 &&
  22.                  num[6]+num[7]+num[8]==15 && num[0]+num[3]+num[6]==15 &&
  23.                  num[1]+num[4]+num[7]==15 && num[2]+num[5]+num[8]==15 &&
  24.                  num[0]+num[4]+num[8]==15 && num[2]+num[4]+num[6]==15)
  25.               {
  26.                  break;
  27.               }
  28.         }

  29.          System.out.println(num[0]+" "+num[1]+" "+num[2]);
  30.          System.out.println(num[3]+" "+num[4]+" "+num[5]);
  31.          System.out.println(num[6]+" "+num[7]+" "+num[8]);
  32.          System.out.print("不論橫向縱向及對角線加起來的和都是15");
  33.     }
  34. }
複製代碼

TOP

  1. public class tqc04
  2. {
  3.   public static void main(String args[])
  4.   {
  5.     int n[]=new int[9];
  6.     while(true)
  7.     {

  8.       for(int i=0;i<9;i++)
  9.       {
  10.          n[i]=(int)(Math.random()*1+9);
  11.          for(int j=0;j<i;j++)
  12.          {
  13.             i--;
  14.             break;
  15.          }
  16.       }

  17.       if(n[1]+n[2]+n[3]==15&&n[4]+n[5]+n[6]==15
  18.          &&n[7]+n[8]+n[9]==15&&n[1]+n[4]+n[7]==15
  19.          &&n[2]+n[5]+n[8]==15&&n[3]+n[6]+n[9]==15
  20.          &&n[7]+n[5]+n[3]==15&&n[9]+n[5]+n[1]==15)
  21.       {
  22.          break;
  23.       }

  24.     }
  25.     System.out.println("答案為:");
  26.     System.out.println(num[0]+" "+num[1]+" "+num[3]);
  27.     System.out.println(num[4]+" "+num[5]+" "+num[6]);
  28.     System.out.println(num[7]+" "+num[8]+" "+num[9]);
  29.   }
  30. }
複製代碼

TOP

  1. public class tqc104
  2. {
  3.     public static void main(String args[])
  4.     {
  5.        int num[]=new int [9];
  6.        while(true)
  7.        {
  8.         for(int i=0; i<9; i++)
  9.         {
  10.             num[i]=(int)(Math.random()*9+1);
  11.             for(int j=0; j<i; j++)
  12.             {
  13.                 if(num[i]==num[j])
  14.                 {
  15.                     i--;
  16.                     break;
  17.                 }
  18.             }
  19.          }
  20.                 if(num[0]+num[1]+num[2]==15 &&
  21.                     num[3]+num[4]+num[5]==15 &&
  22.                     num[6]+num[7]+num[8]==15 &&
  23.                     num[0]+num[3]+num[6]==15 &&
  24.                     num[1]+num[4]+num[7]==15 &&
  25.                     num[2]+num[5]+num[8]==15 &&
  26.                     num[0]+num[4]+num[8]==15 &&
  27.                     num[2]+num[4]+num[6]==15)
  28.                   {
  29.                     break;
  30.                   }

  31.             }
  32.                   System.out.println("答案為:");
  33.                   System.out.println(num[0]+" "+num[1]+" "+num[2]);
  34.                   System.out.println(num[3]+" "+num[4]+" "+num[5]);
  35.                   System.out.println(num[6]+" "+num[7]+" "+num[8]);
  36.                   System.out.println("不論橫向縱向及對角線加起來的和都是 15");
  37.        }
  38.   }
複製代碼

TOP

  1. public class tqc104
  2. {
  3.     public static void main(String args[])
  4.     {
  5.         System.out.println("答案為:");
  6.         int num[]=new int [9];
  7.         while(true)
  8.         {
  9.             for(int i=0; i<9; i++)
  10.             {
  11.                 num[i]=(int)(Math.random()*9+1);
  12.                 for(int j=0; j<i; j++)
  13.                 {
  14.                     if(num[i]==num[j])
  15.                     {
  16.                         i--;
  17.                         break;
  18.                     }
  19.                 }
  20.             }
  21.                 if(num[0]+num[1]+num[2]==15 && num[3]+num[4]+num[5]==15 &&
  22.                    num[6]+num[7]+num[8]==15 && num[2]+num[4]+num[6]==15 &&
  23.                    num[0]+num[4]+num[8]==15 && num[0]+num[3]+num[6]==15 &&
  24.                    num[1]+num[4]+num[7]==15 && num[2]+num[5]+num[8]==15)
  25.                 {
  26.                     break;
  27.                 }
  28.          }
  29.          System.out.println(num[0]+" "+num[1]+" "+num[2]);
  30.          System.out.println(num[3]+" "+num[4]+" "+num[5]);
  31.          System.out.println(num[6]+" "+num[7]+" "+num[8]);
  32.          System.out.print("不論橫向縱向或對角線加起來的和都是15");
  33.     }
  34. }
複製代碼

TOP

返回列表