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

Đề tài: bài toán sắp xếp số bạn nam và nữ theo yêu cầu - ai giúp mình với

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

    Mặc định bài toán sắp xếp số bạn nam và nữ theo yêu cầu - ai giúp mình với

    Hãy viết chương trình trên C thực hiện các yêu cầu sau:
    a) Nhập vào từ bàn phím hai số nguyên dương m và n, trong đó m là số lượng các bạn nữ và n là số lượng các bạn nam trong một nhóm sinh viên?
    b) Xuất ra ra màn hình một cách sắp xếp các bạn sinh viên thành một hàng sao cho mỗi bạn nữ đứng cạnh ít nhất 1 bạn nam và mỗi bạn nam đứng cạnh ít nhất một bạn nữ theo quy cách sau:
    • Nếu không có cách sắp xếp thỏa mãn thì in thông báo NO.
    • Nếu có cách sắp xếp thì in xau gồm các ký tự T và G, trong đó T chỉ bạn nam và G chỉ bạn nữ.
    Ví dụ: Với m = 5, n = 3 thì in ra: GTGGTGTG

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

    Điều kiện :
    t>= [g/2] +1 và g>=[t/2] + 1 ( trong đó [x] là hàm sàn của số thực x)
    __
    Cách xếp:
    - Nhắm mắt nhắm mũi thì vét cạn.
    - Mở mắt thì : Nếu Trai > Gái thì xếp Trai-Gái rồi sau đó Trai-Gái xen kẽ cho đến khi g=t/2 + 1 thì bắt đầu xếp cứ 2 trai thì có 1 gái.
    Nếu Gái > Trai thì xếp Gái-Trai rồi sau đó Gái-Trai xen kẽ cho đến khi t=g/2 + 1 thì bắt đầu xếp cứ 2 gái thì có 1 trai.
    Đã được chỉnh sửa lần cuối bởi clchicken : 25-01-2012 lúc 12:01 AM.
    Um Mani Padme Hum...!!

  3. #3
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Bài này chỉ đòi hỏi 1 cách xếp nên khá dễ, không cần phải vét cạn. Chỉ cần dựa trên 2 nguyên tắc:
    1. chỉ có thể xếp tối đa 2 phần tử cùng tính đứng gần nhau (trừ phần tử đầu tiên và phần tử cuối cùng).
    2. giới tính có ít phần tử hơn thì không nên xếp 2 phần tử gần nhau.

    Theo điều kiện thì nam nữ hay cái gì cũng không thành vấn đề, cứ gọi T1 và T2 cho tiện.

    Như vậy ta có T1(n1) và T2(n2) : Tính 1 có n1 phần tử, tính 2 có n2 phần tử
    Chọn số nhỏ hơn trong hai số, vd n1.
    Nguyên tắc là số này sẽ dùng để lập những ô xếp. Vd n1 là cố nhỏ hơn thì ta lập n1 ô xếp. (Ví dụ sau đặt n1 = 6, n2 = 10)
    Mỗi ô xếp sẽ chứa 1 T1 và 1 T2
    vd T1T2 : T1T2 : T1T2 : T1T2 : T1T2 : T1T2
    Tính n = n2-n1 = 4
    Chạy dọc theo ô xếp, mỗi ô xếp nhét 1 T2 vào đầu ô cho đến hết n
    vd T2T1T2 : T2T1T2 : T2T1T2 : T2T1T2 : T2T1T2 : T1T2
    Nếu nhét không hết thì kết luận là sắp xếp không được

    Sau khi phân tích bằng cách hình dung như trên thì đến giai đoạn phân tích theo toán học:

    - Bài toán đạt giới hạn khi mỗi phần tử bên ít được kẹp hai bên bởi phần tử bên nhiều --> n1*2 = n2. Như vậy bài toán sẽ không giải được nếu một bên nhiều hơn 2 lần bên kia.
    - Lập một vòng lặp chạy n1 lần, cộng với số nd = n2-n1. nd giảm 1 mỗi lượt vòng lặp
    - Nếu nd > 0 thì in T2
    - in T1T2
    - hết vòng lặp.

    C Code:
    1. char nam='T', nu='G';
    2. int nNam, nNu;
    3.  
    4. /* nhét code nhập số nam nữ ở đây */
    5.  
    6. int n1, n2, nd;
    7. char T1, T2;
    8.  
    9. if (nNam <= nNu)
    10. {
    11.   n1 = nNam, n2 = nNu;
    12.   T1 = nam, T2 = nu;
    13. }
    14. else
    15. {
    16.   n1 = nNu, n2 = nNam;
    17.   T1 = nu, T2 = nam;
    18. }
    19.  
    20. if (n2 > n1*2 || n1 <= 0 || n2 <= 0)  printf("Không sắp xếp được");
    21. else for (nd = n2-n1; n1 > 0; n1--, nd--)
    22. {
    23.   if (nd > 0)  printf("%c", T2);
    24.   printf{"%c%c", T1, T2);
    25. }

    tb. đương nhiên nếu bài đỏi hỏi tất cả các cách xếp thì phải vét cạn.

    @tuan12toan: đây là hộp bàn về cách thức giải và cốt. Bàii này bạn chỉ hỏi chứ bạn có đưa ra giải thuật cốt kiếc gì đâu mà hỏi ở hộp này. Đáng lẽ phải đem qua hộp thắc mắc hay hộp nhập môn.

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

    mình mới tham gia diễn đàn lần đầu, rất mong các bạn thông cảm

    bạn ơi! code trên chỉ in ra đc 2 chữ là GT hoặc TG
    Đã được chỉnh sửa lần cuối bởi aydada : 25-01-2012 lúc 05:52 PM. Lý do: Làm liền bài viết

  5. #5
    Ngày gia nhập
    12 2009
    Nơi ở
    bế quan tu lại
    Bài viết
    846

    không thể lấy lí do mới tham gia để mong thông cảm cả, khi bạn đăng kí thì bạn đã chấp nhận phải tuân theo nội quy rồi.

  6. #6
    Ngày gia nhập
    04 2010
    Bài viết
    1,534

    Mặc định bài toán sắp xếp số bạn nam và nữ theo yêu cầu - ai giúp mình với

    Trích dẫn Nguyên bản được gửi bởi tuan12toan Xem bài viết
    ....

    bạn ơi! code trên chỉ in ra đc 2 chữ là GT hoặc TG
    Code chỉ dùng để diễn tả cách suy từ giải thuật sang code thôi. Đem ra dùng thì bạn phải tự chỉnh sử lấy chứ. Lười thế

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

    Trích dẫn Nguyên bản được gửi bởi VoTichSu Xem bài viết
    Code chỉ dùng để diễn tả cách suy từ giải thuật sang code thôi. Đem ra dùng thì bạn phải tự chỉnh sử lấy chứ. Lười thế
    ừ!bài ấy mình làm được rồi!dù sao cũng cảm ơn tất cả các bạn

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

    else for (nd = n2-n1; n1 > 0; n1--, nd--)
    {
    if (nd > 0) printf("%c", T2);
    printf{"%c%c", T1, T2);
    }
    ai giải thích rõ đoạn này cái

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

    Đoạn đấy là nếu có 1 phía nhiều hơn thì trong 1 lượt in thì in 2 đứa phía nhiều, 1 đứa phía ít.
    Cứ thế cho đến khi nào = nhau rồi thì in liên tiếp xen kẽ.
    Um Mani Padme Hum...!!

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

  1. Cài nhạc chờ theo bài hát yêu thích
    Gửi bởi quatangamnhac trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 19-07-2013, 03:53 PM
  2. Thiết kế áo theo yêu cầu, chuyên cung cấp áo đôi tình yêu, mẫu mã đẹp hợp thời trang
    Gửi bởi aodoixinh.com trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 18-10-2012, 04:45 PM
  3. Thiết kế áo đôi CHỮ CÁI theo yêu cầu k14
    Gửi bởi teenddeem trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 0
    Bài viết cuối: 06-03-2012, 12:05 PM
  4. Hàm search với kiểu dữ liệu bất kì theo một yêu cầu bất kì
    Gửi bởi chanphat01001 trong diễn đàn Thủ thuật, Tutorials và Mã nguồn C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 08-06-2008, 10:54 AM
  5. Sắp xếp mảng theo yêu cầu
    Gửi bởi chanphat01001 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 8
    Bài viết cuối: 22-10-2007, 09:25 AM

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