Board logo

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

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

1) 矩陣內數字皆不可重複出現" b6 U+ f# {, J* Q8 D
(2) 程式每次執行,矩陣數字排列皆不相同
9 D1 I7 Y9 Q- q& B6 {(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
6 g8 M9 c5 v" j" |{+ W* s- S6 d& Z5 ]6 c
    public static void main(String arg[])
2 ~* _* Z& H- q. c6 C        {
; P" G" r8 ~  M' I            int num []={1,2,3,4,5,6,7,8,9};: D2 j7 i. x. E0 _8 K! w1 F2 s
        while(trun): ^# M( D8 e3 v; z! v* i* C& I
                {
3 L6 o9 r- }$ v+ V" s) p$ P                int r=(int)(Math.random()*9)+1;7 G$ a) p& D% n" Q
                int t=num[i];/ v, S* c; L* k$ h) u
                num[i]=num[r];9 k- l9 b* O0 W
                num[r]=t;
; E* w) d& }/ |! ^                int a1 = num[0] + num[1] + num[2] ;
0 T/ @  G7 u0 [9 l/ S: c        int a2 = num[3] + num[4] + num[5] ;7 i7 o7 p6 S" W
        int a3 = num[6] + num[7] + num[8] ;$ t! M$ m1 L3 j2 _5 Z$ c
        int a4 = num[0] + num[3] + num[6] ;2 d+ v( A' _% ^8 H8 C
        int a5 = num[1] + num[4] + num[7] ;
2 B( Z- F4 i+ f+ n3 f2 u0 d3 \& C" L. x        int a6 = num[2] + num[5] + num[8] ;; G( H9 p$ T/ w) \  f* L% ^
        int a7 = num[0] + num[4] + num[8] ;- r$ L0 {* D9 I3 a* b
        int a8 = num[2] + num[4] + num[6] ;
1 {3 k0 u" d6 U% O                if(a1==15&&a2==15&&a3==15&&a4==15&&a5==15&&a6==15&&a7==15&&a8==15)
3 P7 C( w# y' ^; h9 g$ S0 K            }break;            7 S, t; e/ Q6 F4 `+ Q0 o
    }) j5 |( G" ?7 ]) z/ G& y
}
作者: 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 j102
4 ~$ f8 G* E2 g( N5 s$ x{/ g. _0 r' k6 j7 |9 U) _3 B
    public static void main(String arg[])6 s1 E7 }) W( L# N& j
        {! ~0 ~6 b5 i' O' ]% s0 a
            int num []={1,2,3,4,5,6,7,8,9};# P) s# [* ]0 ], I* d5 L% l
        while(trun)/ D2 x! W, G& {4 Q
                {
: a: v2 z8 Z7 y                int r=(int)(Math.random()*9)+1;
" s" v5 V* [8 c: ~; L1 e                int t=num[i];
  D' m5 i0 e, g6 x) e                num[i]=num[r];/ s3 r3 A: h7 v2 B' O) S
                num[r]=t;
7 u) s1 K7 S- H0 F! ]" b                int a1 = num[0] + num[1] + num[2] ;
: R( M6 `' u- c7 z9 U& V: |        int a2 = num[3] + num[4] + num[5] ;
& G+ e1 ~- \( L- S- ]        int a3 = num[6] + num[7] + num[8] ;
3 B$ H5 m9 B. ^  n# F8 J        int a4 = num[0] + num[3] + num[6] ;9 |# H$ T) z2 v  f7 d# |
        int a5 = num[1] + num[4] + num[7] ;( _; v- {. h/ \+ {  ?' m2 _( d2 z
        int a6 = num[2] + num[5] + num[8] ;
0 k, n/ A- U, U        int a7 = num[0] + num[4] + num[8] ;' x" J' A# l  z& b* Y! q! a
        int a8 = num[2] + num[4] + num[6] ;  T2 ]( D5 W, I" h8 L% u
                if(a1==15&&a2==15&&a3==15&&a4==15&&a5==15&&a6==15&&a7==15&&a8==15)
( L- S. G1 P1 q) T8 D# N            }break;            : W: i- d& v2 Z  k; t* p6 K( H
    }
5 s0 ~3 W, L% K$ j2 y% }}
作者: 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