BÀI TẬP Ở NHÀ

https://www.baitaponha.com

Trò chơi con số may mắn | Giải đề HSG Tin 12 Nghệ An | Năm 2012-2013

Đề giỏi tỉnh nghệ an năm học 2012-2013

Đề giỏi tỉnh nghệ an năm học 2012-2013

Bắt đầu chương trình giải đề học sinh giỏi tin học 12 của tỉnh Nghệ An, Tiếp tục mới các bạn tham khảo đề thi HSG tin học lớp 12. Trong seri nay tôi sẽ viết các bài của đề Nghệ An qua các năm từ 2012 đến nay. Trong bài này là các câu 1 của đề thi năm 2012-2013. Mời các bạn cùng tham khảo nhé. Trong bài sẽ có code mẫu và các test để các bạn chạy thử. Trước khi xem code mẫu, tôi khuyên các bạn nên tự giải trước.

Bài 1. Trò chơi con số may mắn.

            Nhân dịp lễ giáng sinh, công viên trung tâm tổ chức trò chơi "Con số may mắn". Mỗi em nhỏ đến tham dự sẽ được phát một số nguyên dương. Công viên có một thiết bị quay số, mỗi lần quay sẽ tạo ngẫu nhiên một số nguyên dương không vượt quá 104. Người dẫn chương trình sẽ thực hiện N lần quay số. Số nào xuất hiện nhiều nhất trong N lần quay được gọi là con số may mắn và em nhỏ nào có con số may mắn thì sẽ được phần thưởng (có thể có nhiều con số may mắn).
Yêu cầu: Cho N con số xuất hiện trong N lần quay. Bạn hãy giúp người dẫn chương trình xác định số lần xuất hiện của con số may mắn.
Dữ liệu: Vào từ file văn bản Bai1.inp:
  • Dòng đầu là số N (1 £ N £ 104);
  • Dòng tiếp theo có N số là các số xuất hiện trong N lần quay (các số trên cùng một dòng ghi cách nhau một dấu cách).
Kết quả: Ghi ra file văn bản Bai1.out: Chỉ một số duy nhất là số lần xuất hiện của con số may mắn.
Ví dụ:
Bai1.inp Bai1.out Bai1.inp Bai1.out
5
4 3 4 4 15		 3 7
12 5 10 5 8 10 9		 2
 

CODE MẪU THAM KHẢO (PASCAL).

const   fi='Bai1.inp';
        fo='Bai1.out';
var     a:array[1..10000] of integer;
        n,m,i,d:integer;
        f:text;
begin
     assign(f,fi);
     reset(f);
     readln(f,n);
     d:=0;
     for i:=1 to n do
     begin
          read(f,m);
          inc(a[m]);
          if a[m]>d then d:=a[m];
     end;
     close(f);
     assign(f,fo);
     rewrite(f);
     writeln(f,d);
     close(f);
end.

SOLUTION:

Bài này thì đơn giải chỉ dùng mảng đánh dấu là mảng a (Có chỉ số index là các số xuất hiện trong các lần quay). Mỗi lần đọc đến số m nào thì tăng giá trị a[m] lên 1 đơn vị, đồng thời nếu a[m] > d thì gán d:= a[m]. Khi duyệt hết mảng thì d là số lần xuất hiện nhiều nhất của số may mắn m.

CÁC TEST:

Các test được đính kèm cuối bài.

Tác giả: admin

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây