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

Đề tài: [BT]Trò chơi xếp vòng, tìm người cuối cùng.

  1. #1
    Ngày gia nhập
    04 2007
    Bài viết
    5

    Exclamation [BT]Trò chơi xếp vòng, tìm người cuối cùng.

    Có 30 người, xếp vòng tròn. Bắt đầu đếm từ vị trí thứ nhất, đến người thứ 7 thì bị loại ra khỏi vòng chơi. Hỏi người cuối cùng còn lại.
    Có thể tìm thuật toán chung cho bài toán tổng hợp với n người và đếm đến người thứ m thì loại.
    KID

  2. #2
    Ngày gia nhập
    10 2006
    Nơi ở
    In Your Bugs
    Bài viết
    823

    Uhm Cũng không khó lắm đâu ? Chỉ việc tạo một vào while rồi duyệt cho đến người cuối cùng thôi . Nếu cậu lưu theo danh sách liên kết vòng thì dễ hơn còn nếu lưu theo mảng thì có vẻ hơi vất vả một tí , nhưng bài toán này không có ứng dụng gì cả ? Chẳng hiểu vì sao bạn lại quan tâm ?

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

    Trích dẫn Nguyên bản được gửi bởi kidkid Xem bài viết
    Uhm Cũng không khó lắm đâu ? Chỉ việc tạo một vào while rồi duyệt cho đến người cuối cùng thôi . Nếu cậu lưu theo danh sách liên kết vòng thì dễ hơn còn nếu lưu theo mảng thì có vẻ hơi vất vả một tí , nhưng bài toán này không có ứng dụng gì cả ? Chẳng hiểu vì sao bạn lại quan tâm ?
    Cậu sai rồi. Không thể duyệt đến người cuối cùng được, vì 30 người đứng vòng tròn cơ mà, sau khi loại người thứ 7 thì bắt đầu đếm từ người thứ 8 mà.
    KID

  4. #4
    Ngày gia nhập
    07 2006
    Bài viết
    121

    Code:
    #include<stdio.h>
    #include<stdlib.h>
    void init(char *a,int n){
    	for(int i=0;i<n;i++)
    		a[i]=i+1;
    	
    }
    
    void process(char *a,int *n){
    	int end=*n;
    	int target=6;
    	while(end>=7){
    		for(int i=target;i<end;i++){
    			a[i]=a[i+1];
    		}
    		target=(target+7)%end;
    		end--;
    	}
    	*n=end;
    }
    
    int main(){
    int n=10;
    char *a=(char*)malloc(n*sizeof(char));
    init(a,n);
    process(a,&n);
    for(int i=0;i<n;i++)
    	printf("%d ",a[i]);
    free(a);
    return 0;
    }
    Đã được chỉnh sửa lần cuối bởi shinichi_haha : 05-05-2007 lúc 07:59 PM.

    OoShinHaoO

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

  1. Hàm trong C Cùng nghiên cứu 1 bài tập dài (trò chơi đoán chữ)
    Gửi bởi lequangthang trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 19-07-2013, 08:01 PM
  2. Bài tập C bài tập: Xây dựng trò chơi “Ô ăn quan” cho 2 người chơi...dùng danh sách liên kết đôi và vòng ạ
    Gửi bởi namhoanguit trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 0
    Bài viết cuối: 17-05-2013, 10:50 PM
  3. Lập trình C++ Cách break khỏi 2 vòng lặp cùng lúc
    Gửi bởi GreenFire trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 29-03-2012, 06:35 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