Board logo

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

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

1) 矩陣內數字皆不可重複出現0 f# V& `2 W3 {+ V3 A
(2) 程式每次執行,矩陣數字排列皆不相同
, T+ a- K4 J! t( O' m(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
. Y$ x$ j* j8 o6 r6 f; V! Z: v{
/ U  n2 V5 W) y! x# T    public static void main(String arg[])
+ S; h5 E0 s# U: ^6 ]; h" ]7 p        {
6 ~# B! i& e; I3 Q: @            int num []={1,2,3,4,5,6,7,8,9};
' T) Y4 \4 x) k& D$ L2 d& |1 \) V        while(trun); `, o7 W8 p  d* P- Y
                {! P. G; x3 V" M( v/ b
                int r=(int)(Math.random()*9)+1;( k: U0 V+ U; J3 z
                int t=num[i];" w& r) p1 c1 @0 x7 b( ~, h2 W
                num[i]=num[r];
- ^9 z9 ^/ i, R9 {3 ^) u                num[r]=t;  w- v5 p, c6 z5 d" f
                int a1 = num[0] + num[1] + num[2] ;
; e+ v" S" w9 M3 V: v# `- d* X- }        int a2 = num[3] + num[4] + num[5] ;
2 d& V" @9 C' n# ~" K3 b, t) d        int a3 = num[6] + num[7] + num[8] ;! ]. c3 b2 [& u
        int a4 = num[0] + num[3] + num[6] ;
3 r& U7 v' c8 r# q2 W& b) R        int a5 = num[1] + num[4] + num[7] ;
4 n$ A( t2 t9 B) m$ A, U        int a6 = num[2] + num[5] + num[8] ;
% Q* `; O) A2 W9 j- w        int a7 = num[0] + num[4] + num[8] ;) j- B* b3 @) m5 i- ^0 n
        int a8 = num[2] + num[4] + num[6] ;# w7 a8 n% p  I0 c
                if(a1==15&&a2==15&&a3==15&&a4==15&&a5==15&&a6==15&&a7==15&&a8==15)
, y6 }8 G6 [6 T3 ?4 {2 C& R% c' ?            }break;            5 a2 }0 _' Z0 M2 a# j/ Z! `6 C
    }( W2 u- ^7 R8 z) `( K) ]$ _4 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( k8 @( A* f( k( f5 \: g) s
{
4 |9 W% ?  K1 e2 O' b    public static void main(String arg[])
; Z# r$ E- s- h        {4 T+ s0 h4 c0 [
            int num []={1,2,3,4,5,6,7,8,9};
- A' R; I: N. I' W+ L. f' }0 a        while(trun)2 d' Q1 O3 i, i2 ?7 o  f' n/ W. H
                {
1 ]+ V9 c# c! i" T  a. s                int r=(int)(Math.random()*9)+1;
, A; y% o7 M% d; |% k/ t8 v2 g                int t=num[i];5 Q6 `) J$ o0 o7 M7 |* q( j
                num[i]=num[r];
' E+ h, l; }" ]8 ?, s- w& @7 z                num[r]=t;; L4 R- |; P+ b* L3 ~3 ]
                int a1 = num[0] + num[1] + num[2] ;6 h+ i8 I& {) Y# o% y" G
        int a2 = num[3] + num[4] + num[5] ;) m5 H& k. |) g# R( ^" u4 I. e
        int a3 = num[6] + num[7] + num[8] ;5 S9 G# V& ]# D- I
        int a4 = num[0] + num[3] + num[6] ;% @4 O' I1 |/ c7 c: B4 d+ M5 y. E1 ^
        int a5 = num[1] + num[4] + num[7] ;
3 \$ x5 R4 D) A3 w# |1 {1 t2 @1 ?5 N        int a6 = num[2] + num[5] + num[8] ;
) v' I  |6 j+ c1 e1 @% M  Q        int a7 = num[0] + num[4] + num[8] ;
7 j- ~6 F) I' A1 h+ N        int a8 = num[2] + num[4] + num[6] ;2 Z) l1 ]) U# ?/ t
                if(a1==15&&a2==15&&a3==15&&a4==15&&a5==15&&a6==15&&a7==15&&a8==15)6 U. J* `. A5 s( b& Q. Q" I
            }break;            0 D9 m" q& V8 e. k8 L* h7 v
    }
5 `# q( u- H' \) I* y8 r" q/ c}
作者: 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