Từ 1 tới 9 trên tổng số 9 kết quả

Đề tài: hướng dẫn em giải bài ma trận zic zac.

  1. #1
    Ngày gia nhập
    01 2008
    Bài viết
    0

    Mặc định hướng dẫn em giải bài ma trận zic zac.

    Hãy điền các số từ 1 đến N*N vào bảng sau theo quy luật được mô tả với những trường hợp cụ thể (N = 5,6) như sau:
    N=5
    11 10 4 3 1
    19 12 9 5 2
    20 18 13 8 6
    24 21 17 14 7
    25 23 22 16 15

    N=6
    1 2 6 7 15 16
    3 5 8 14 17 26
    4 9 13 18 25 27
    10 12 19 24 28 33
    11 20 23 29 32 33
    21 22 30 31 35 36
    bài này dạng zic zac nhưng em không biết làm, anh nào co code bài này cho em xin luôn nhé. thank.

  2. #2
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Đây là code theo cách của huynguyen, bạn có thể tham khảo và bài này chỉ có 1 trường hợp giống như n=6, trường hợp còn lại bạn làm tương tự nhé. Bài này chỉ đúng với nxn thôi, mxn ko chính xác.
    Code:
    #include <iostream>
    #include <iomanip>
    #include <cstdlib>
    #define maxx 25
    using namespace std;
    int main(){
        srand(time(0));
        int b[maxx*maxx],a[maxx][maxx],i,j,n = 10; 
        for (i = 0;i < n*n;++i) b[i] = rand()%100;
        int temp;
        for (i = 0;i < n*n-1;++i)
            for (j = i+1;j < n*n;++j)
                if (b[i] > b[j]){
                    temp = b[i];
                    b[i] = b[j];
                    b[j] = temp;
                }
        cout <<"Ma tran duoc tao ngau nhien va sap xep:";
        for (i = 0;i < n*n;++i){
            if ((i%n)==0) cout <<endl;
            cout <<setw(4) <<b[i];
        }
        for (i = 0;i < n;++i)
            for (j = 0;j < n;++j) a[i][j] = 0;
        //Chuyen thanh ma tran zig zig cheo 
        i = 0;
        j = 0;
        int k = 0;
        for (int e = 0;e < n-1;++e){
            if (j < n) a[i][j] = b[k++]; 
            ++j; 
            while (j > 0){
                  if ((i < n)&&(j < n)) a[i][j] = b[k++];
                  ++i; --j;
            }
            if (i < n) a[i][j] = b[k++];
            ++i;
            while (i > 0){ 
                  if ((i < n)&&(j < n)) a[i][j] = b[k++];
                  --i; ++j;
            }
        }
        cout <<"\nMa tran zig zag cheo:\n";
        for (i = 0;i < n;++i){
            for (j = 0;j < n;++j) cout <<setw(4) <<a[i][j];
            cout <<endl;
        }
        getchar(); return 0;
    }

  3. #3
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Hix, ông Huynguyen trùm mấy cái ma trận T_T! Cứ tưởng dễ tui suy nghĩ nãy h không ra, haha ! Đúng là mấy cái này cũng chua ghê, mấy thầy cô cho bài cũng ác thật ^^!

  4. #4
    Ngày gia nhập
    01 2008
    Bài viết
    0

    sao em đưa vào borlandC ko chạy được vậy anh?
    thấy khó quá.

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Ừ nếu mới học cũng khó đó em, thực ra mấy cái này làm nhiều thì có cảm giác vậy thôi, cứ từ từ mà học ! Không làm ra 1 bài không có sao hết. Do anh Huynguyen viết C++ thôi, em down thử cái Dev-cpp về complie xem sao ! Hay vào microsfot down free cái Visual C++ express cũng được ? Anh học cả hơn năm rùi làm cũng không ra nè hì hì ! Chịu khó print ra rồi từ từ đọc, kiếm vài bài tương tự bắt chước dần nó quen liền à !
    Sorry ăn cắp bản quyền của Huynguyen tí nha T_T, sữa lại cho em dễ hiểu nè !
    PHP Code:
    #include <iostream>
    #include <iomanip>
    #include <cstdlib>

    #define maxx 25

    using namespace std;

    int main()
    {
        
    int b[maxx*maxx],
            
    a[maxx][maxx];
        
        
    int n 10;
        
    int i,j
        
        
    /*Khởi tạo mãng b[] gồm các số từ 0->99
           khỏi random cho nó dễ hiểu*/
        
    for(int i 0n*n-1i++)
        {
            
    b[i] = 1;
        }
      
        /
    Chỗ này cho mãng a[10][10khởi tạo bằng 0 hết*/
        for (
    0;n;++i){
            for (
    0;n;++j){ 
                
    a[i][j] = 0;
            }
        }
      
        
    //Chuyen thanh ma tran zig zig cheo 
        
    0;
        
    0;
        
    int k 0;
        for (
    int e 0;n-1;++e)
        {
            if (
    n
                
    a[i][j] = b[k++]; 
                ++
    j
            
            while (
    0)
            {
                if ((
    n)&&(n)) 
                    
    a[i][j] = b[k++];
                    ++
    i; --j;
            }
            
            if (
    n
                
    a[i][j] = b[k++];
                ++
    i;
            
            while (
    0)
            { 
                if ((
    n)&&(n)) 
                    
    a[i][j] = b[k++];
                    --
    i; ++j;
            }
        }
        
        
    cout <<"\nMa tran zig zag cheo:\n";
        for (
    0;n;++i)
        {
            for (
    0;n;++j
                
    cout <<setw(4) <<a[i][j];
            
    cout <<endl;
        }
        
        

    Đã được chỉnh sửa lần cuối bởi rox_rook : 18-01-2008 lúc 03:49 PM.

  6. #6
    Ngày gia nhập
    01 2008
    Bài viết
    0

    Mặc định hướng dẫn em giải bài ma trận zic zac.

    cám ơn anh nhiều, nhờ anh giúp đỡ lần sau, em cố gắng thử xem, ko được thì anh giúp em với nha.

  7. #7
    Ngày gia nhập
    12 2007
    Bài viết
    50

    Bài của chú HuyNguyen viết hay cực nhỡ

  8. #8
    Ngày gia nhập
    01 2012
    Nơi ở
    hà nôi 2
    Bài viết
    59

    thể loại ma trận ziczac này có cả một bài trên wiki đọc xong em cũng chả hiểu ra làm sao, nhưng may ăn cắp ý tưởng cũng code được cái xoắn ốc gì đó, rồi tự làm được một bài zizac hang ngang nhập vào bất kỳ
    I'm still a chicken
    rất vui khi được làm quen với mọi người ^_^ http://www.facebook.com/chung.v.nguyen.14

  9. #9
    Ngày gia nhập
    06 2012
    Bài viết
    10

    Trích dẫn Nguyên bản được gửi bởi kimchung929 Xem bài viết
    thể loại ma trận ziczac này có cả một bài trên wiki đọc xong em cũng chả hiểu ra làm sao, nhưng may ăn cắp ý tưởng cũng code được cái xoắn ốc gì đó, rồi tự làm được một bài zizac hang ngang nhập vào bất kỳ
    choáng

Các đề tài tương tự

  1. Trả lời: 0
    Bài viết cuối: 04-08-2012, 03:08 PM
  2. Trả lời: 0
    Bài viết cuối: 04-08-2012, 03:03 PM
  3. Trả lời: 0
    Bài viết cuối: 04-08-2012, 02:49 PM
  4. Thuật toán C# Tìm ma trận trực giao, tính độc lập tuyến tính, tìm ma trận sinh hệ thống
    Gửi bởi kasparov trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 0
    Bài viết cuối: 15-12-2011, 12:57 AM
  5. Trao đổi về các giải thuật. Mọi người cùng nhau trao đổi nhé!
    Gửi bởi donvuon trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 18
    Bài viết cuối: 03-07-2010, 09:53 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn