Board logo

標題: jva 104 河洛之數 [打印本頁]

作者: b790113g    時間: 2011-12-31 10:58     標題: jva 104 河洛之數

1) 矩陣內數字皆不可重複出現, a( j. ?. `! N# @* X. x: |6 g
(2) 程式每次執行,矩陣數字排列皆不相同
2 [- H- o7 Q+ A  I. {' \(3) 矩陣之縱向、橫向、對角線數字總和皆為15
  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std ;

  4. int main(){
  5.    
  6.     int a[] = {1,2,3,4,5,6,7,8,9} ;
  7.    
  8.     //亂數種子
  9.     srand(time(NULL));
  10.    
  11.     while(true){
  12.         //交換9次
  13.         for(int i=0;i<9;i++){
  14.             int r = rand()%9 ;
  15.             //交換        
  16.             int t = a[r] ;
  17.             a[r] = a[i];
  18.             a[i] = t ;
  19.         }
  20.         //列的判斷
  21.         int a1 = a[0] + a[1] + a[2] ;
  22.         int a2 = a[3] + a[4] + a[5] ;
  23.         int a3 = a[6] + a[7] + a[8] ;
  24.         //行的判斷
  25.         int a4 = a[0] + a[3] + a[6] ;
  26.         int a5 = a[1] + a[4] + a[7] ;
  27.         int a6 = a[2] + a[5] + a[8] ;
  28.         //斜的判斷
  29.         int a7 = a[0] + a[4] + a[8] ;
  30.         int a8 = a[2] + a[4] + a[6] ;
  31.          
  32.         if(a1==15&&a2==15&&a3==15&&a4==15&&a5==15&&a6==15&&a7==15&&a8==15){
  33.             break;                           
  34.         }
  35.     }

  36.     cout << a[0] << " " << a[1] << " " << a[2] << endl;
  37.     cout << a[3] << " " << a[4] << " " << a[5] << endl;
  38.     cout << a[6] << " " << a[7] << " " << a[8] << endl;
  39.    
  40.     system("pause");
  41.     return 0;
  42. }
複製代碼

作者: johnson    時間: 2011-12-31 11:35

public class j102+ l* \' L& d( C$ ]
{  U! K3 i7 I7 ^$ R- L* W
    public static void main(String arg[])1 J3 U$ H2 }) I0 X
        {0 V# B, E, T6 o3 p8 \  p- y/ O
            int num []={1,2,3,4,5,6,7,8,9};" \1 R! O" w/ x
        while(trun). a9 m" z9 B; j0 [8 t! e  {9 G
                {4 I' H4 ^' S5 s0 ~# A% `7 }
                int r=(int)(Math.random()*9)+1;1 {6 [2 [: v: M" M* L! K
                int t=num[i];
2 X2 ~  i5 H, w$ C1 r2 J                num[i]=num[r];8 {" h& p! u; o% v
                num[r]=t;) |. m, u- Z8 G
                int a1 = num[0] + num[1] + num[2] ;. }& U+ Z& k. a4 b9 {
        int a2 = num[3] + num[4] + num[5] ;
$ d+ ~: i3 G' h: }0 H( y3 t, g        int a3 = num[6] + num[7] + num[8] ;
1 I& A, C% k% W& `, W        int a4 = num[0] + num[3] + num[6] ;
* W4 z2 c4 O% f( W. r. V5 ?3 E, @        int a5 = num[1] + num[4] + num[7] ;
1 R% n' v7 a8 p  ]3 {        int a6 = num[2] + num[5] + num[8] ;
4 r# w$ O5 g  \$ ?3 |        int a7 = num[0] + num[4] + num[8] ;
" o+ B& ^5 _! j4 J9 n        int a8 = num[2] + num[4] + num[6] ;8 S% D& Z7 C/ l1 `- G1 k
                if(a1==15&&a2==15&&a3==15&&a4==15&&a5==15&&a6==15&&a7==15&&a8==15)
, D$ ^* J9 C& A            }break;            5 h; }  |9 q, H' W; v: R% D- d4 v" x
    }) a( D& E& W" b/ V5 T; H
}
作者: kim    時間: 2011-12-31 11:36

  1. #include <iostream>
  2. #include <cstdlib>
  3. using namespace std ;

  4. int main(){
  5.    
  6.     int a[] = {1,2,3,4,5,6,7,8,9} ;
  7.    
  8.     //亂數種子
  9.     srand(time(NULL));
  10.    
  11.     while(true){
  12.         //交換9次
  13.         for(int i=0;i<9;i++){
  14.             int r = rand()%9 ;
  15.             //交換        
  16.             int t = a[r] ;
  17.             a[r] = a[i];
  18.             a[i] = t ;
  19.         }
  20.         //列的判斷
  21.         int a1 = a[0] + a[1] + a[2] ;
  22.         int a2 = a[3] + a[4] + a[5] ;
  23.         int a3 = a[6] + a[7] + a[8] ;
  24.         //行的判斷
  25.         int a4 = a[0] + a[3] + a[6] ;
  26.         int a5 = a[1] + a[4] + a[7] ;
  27.         int a6 = a[2] + a[5] + a[8] ;
  28.         //斜的判斷
  29.         int a7 = a[0] + a[4] + a[8] ;
  30.         int a8 = a[2] + a[4] + a[6] ;
  31.          
  32.         if(a1==15&&a2==15&&a3==15&&a4==15&&a5==15&&a6==15&&a7==15&&a8==15){
  33.             break;                           
  34.         }
  35.     }

  36.     cout << a[0] << " " << a[1] << " " << a[2] << endl;
  37.     cout << a[3] << " " << a[4] << " " << a[5] << endl;
  38.     cout << a[6] << " " << a[7] << " " << a[8] << endl;
  39.    
  40.     system("pause");
  41.     return 0;
  42. }
複製代碼

作者: eric5802    時間: 2011-12-31 11:38

public class j1025 @# F/ E5 ], u
{
& z/ X0 U1 I/ p- k+ c  l1 G# e    public static void main(String arg[])
2 [/ r6 x- _* q1 i; B        {' a: M% W( c9 Q" h' w9 D
            int num []={1,2,3,4,5,6,7,8,9};
/ f% A  I2 N' ~6 Q% Y. b) R        while(trun)
+ w" v6 O$ l& H6 Z8 h+ F6 t                {. D. [0 Y, r, |" x- B7 M% j
                int r=(int)(Math.random()*9)+1;: T8 m# \( M0 [& i+ b" T
                int t=num[i];
5 r/ \7 s$ j! Y; N  m                num[i]=num[r];; i  c# M( z3 C
                num[r]=t;
6 R( U0 w% @. L, Y; Y$ Y                int a1 = num[0] + num[1] + num[2] ;# ^  [; ~/ s2 k5 l1 J2 f
        int a2 = num[3] + num[4] + num[5] ;
: A2 R/ D( Q& q" A/ f- [        int a3 = num[6] + num[7] + num[8] ;1 ~- J: c0 J/ a* G
        int a4 = num[0] + num[3] + num[6] ;
2 ?0 {$ S6 W+ `( n- J        int a5 = num[1] + num[4] + num[7] ;# K4 r) e. r; f
        int a6 = num[2] + num[5] + num[8] ;* Z/ B) h" z( F
        int a7 = num[0] + num[4] + num[8] ;
9 M- k8 z8 m2 k0 m9 s4 d9 P. K        int a8 = num[2] + num[4] + num[6] ;) |0 C0 J4 g3 k$ D/ K2 B9 p. a: {
                if(a1==15&&a2==15&&a3==15&&a4==15&&a5==15&&a6==15&&a7==15&&a8==15)) B' G5 N/ v2 T, d  l6 l% t8 `; {7 @
            }break;            
7 {& W" j( L5 [" n! P    }$ c: q- g/ P- E) j* h" |& m
}
作者: TOM    時間: 2011-12-31 11:49

  1. public class j104
  2. {
  3.         public static void main(String[]arg)
  4.         {
  5.         int num[]={1,2,3,4,5,6,7,8,9};
  6.                 while(true)
  7.                 {
  8.                         for(int i=0;i<9;i++)
  9.                         {
  10.                         int r=(int)(Math.random()*9);
  11.                         int t=num[i];
  12.                         num[i]=num[r];
  13.                         num[r]=t;
  14.                     }
  15.                 int a1 = num[0]+num[1]+num[2];
  16.                 int a2 = num[3]+num[4]+num[5];
  17.                 int a3 = num[6]+num[7]+num[8];
  18.                 int a4= num[0]+num[3]+num[6];
  19.                 int a5= num[1]+num[4]+num[7];
  20.                 int a6= num[2]+num[5]+num[8];
  21.                 int a7= num[0]+num[4]+num[8];
  22.                 int a8= num[2]+num[4]+num[6];
  23.          if(a1==15&&a2==15&&a3==15&&a4==15&&a5==15&&a6==15&&a7==15&&a8==15)
  24.                  {
  25.                  break ;
  26.          }
  27.                 System.out.println("答案為:");
  28.                 System.out.println(num[0]+" "+num[1]+" "+num[2]);
  29.                 System.out.println(num[3]+" "+num[4]+" "+num[4]);
  30.                 System.out.println(num[5]+" "+num[6]+" "+num[7]);
  31.                 }
  32.         }
  33. }
複製代碼

作者: may    時間: 2011-12-31 12:18

[attach]563[/attach]
作者: may    時間: 2012-1-4 17:04

[attach]564[/attach]
作者: lon    時間: 2012-1-4 17:11

[attach]565[/attach]
作者: may    時間: 2012-1-4 17:24

[attach]566[/attach]
作者: kim    時間: 2012-4-4 11:44

http://site.istak.org.tw/bbs/att ... 3D&noupdate=yes




歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://seed.istak.org.tw/) Powered by Discuz! 7.2