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

Đề tài: Viết thuật toán sắp xếp n2 số nguyên từ 1 đến n2 thành một bảng gồm n dòng và n cột sao cho đi theo vòng xoáy t

  1. #1
    Ngày gia nhập
    10 2011
    Bài viết
    6

    Mặc định Viết thuật toán sắp xếp n2 số nguyên từ 1 đến n2 thành một bảng gồm n dòng và n cột sao cho đi theo vòng xoáy t

    Viết thuật toán sắp xếp n2 số nguyên từ 1 đến n2 thành một bảng gồm n dòng và n cột sao cho đi theo vòng xoáy trôn ốc từ trái sang phải, từ trên xuống dưới, từ phải sang trái, từ dưới lên trên ta nhận được dãy tăng các số?

    ai làm hộ mình với!!!!!!!!

  2. #2
    Ngày gia nhập
    09 2011
    Bài viết
    16

    bạn sử dụng vòng lặp for kết hợp với switch là được thồi mà.
    đây là ý tưởng của mình:

    Code:
    tang=0;
    for(i=0;i<n*n;i++)
    {
     mang[hang][cot]=i;
    switch(tang)
    {
     case 0:if(cot<max cột)
      cot++;  //chép vào mảng từ trái qua phải
        else
       {
          tang++;
          hang++;
       }
        break;
     
      case 1:if (hang<max hàng)
       hang++; //chép vào mảng từ tren xuống dưới
       else
        {
           tang++;
           cot--;
         }
        break;
       case 2:if(cot>min hàng)
                cot--;  //chép vào mảng theo từ phải qua trái
            else
            {
               tang++;
               hang--;
             }
           break; 
        case 3:if(hang>min hàng)
           hang--;  //chép vào mảng theo thứ tự từ dưới lên trên
        else
         {
          tang=0;
           cot++;
         }
          break;
    }
    }
    đây chỉ là phác thảo xơ qua thôi(tất nhiên là vẫn chưa chạy dược) bạn có thể dựa vào nó để hoàn thành bài của mình

  3. #3
    Ngày gia nhập
    04 2011
    Bài viết
    44

    Trích dẫn Nguyên bản được gửi bởi kaito_kid_1012 Xem bài viết
    Viết thuật toán sắp xếp n2 số nguyên từ 1 đến n2 thành một bảng gồm n dòng và n cột sao cho đi theo vòng xoáy trôn ốc từ trái sang phải, từ trên xuống dưới, từ phải sang trái, từ dưới lên trên ta nhận được dãy tăng các số?

    ai làm hộ mình với!!!!!!!!
    tạo một mảng 2 chiều nxn, khởi tạo tất cả các phần tử bằng 0
    cho vòng lặp chạy và duyệt theo hình xoắn trôn ốc với từng trường hợp hoặc vượt biên hoặc gặp phần tử đã điền thì đổi hướng

    C++ Code:
    1.     int id=0, jd=1;
    2.     int i=0; j=0, k=1;//vi tri dau tien
    3.     while (k<=(n*n)){
    4.         A[i][j]=k++;
    5.         if ((j+jd)==n || (i+id)==n || (j+jd)<0 || A[i+id][j+jd]>0)
    6.         {//cac truong hop vuot bien hoac gap phan tu da dien
    7.            int tmp=jd;
    8.            jd=-id; id=tmp;//id=jd , jd=-id
    9.         }
    10.         i+=id;
    11.         j+=jd;
    12.     }
    Đã được chỉnh sửa lần cuối bởi sora_ : 13-11-2011 lúc 08:34 AM.
    gương kia ngự ở trên tường...thế gian ai lười đc dường như ta..

  4. #4
    Ngày gia nhập
    10 2011
    Bài viết
    6

    tks mọi ngươi!!!!!!

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

  1. Bài tập C Thuật toán tô màu theo dòng quét Scanline help help !
    Gửi bởi babycutetn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 19-09-2013, 11:13 PM
  2. Thuật toán C tô màu ellipse theo thuật toán dòng quét
    Gửi bởi san93st trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 0
    Bài viết cuối: 05-05-2013, 06:01 PM
  3. viết thuật toán Quicksort trên dslk vòng?
    Gửi bởi tiensjvn trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 21-04-2011, 08:29 PM
  4. sửa lỗi thuật scanfill - tô màu theo dòng quét?
    Gửi bởi luongsonbinh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 26-12-2010, 12:36 PM
  5. Viết lại đệ quy theo vòng lặp !help
    Gửi bởi kUn_shOck trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 09-10-2009, 09:01 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