Tải bản đầy đủ (.doc) (3 trang)

Đề + Đáp án thi HSG tỉnh Vĩnh phúc 2010

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (144.47 KB, 3 trang )

SỞ GD&ĐT VĨNH PHÚC
———————
ĐỀ CHÍNH THỨC
KỲ THI CHỌN HSG LỚP 9 THCS NĂM HỌC 2009 - 2010
ĐỀ THI MÔN: TIN HỌC
Thời gian làm bài: 150 phút, không kể thời gian giao đề
———————————
Tổng quan
Tên bài File chương trình File dữ liệu vào File dữ liệu ra thời gian
Bài 1 Số bền
persist.pas persist.inp persist.out 1s/test
Bài 2 Đổi giày
shoes.pas shoes.inp shoes.out 1s/test
Bài 3 Đối xứng
nextpal.pas nextpal.inp nextpal.out 1s/test
Lập trình giải các bài toán sau:
Bài 1. Số bền
Năm 1973, nhà Toán học Neil Sloan đưa ra khái niệm độ bền của một số nguyên không âm N như sau:
• Nếu N có một chữ số thì độ bền của N bằng 0.
• Nếu N có từ 2 chữ số trở lên thì độ bền của N bằng độ bền của số nguyên là tích các chữ số của N
cộng 1.
Cho N, tính độ bền của N.
Dữ liệu vào từ file văn bản: persist.inp
Dòng 1: Số nguyên N (0 ≤ N ≤ 2.000.000.000).
Kết quả ghi ra file văn bản: persist.out
Dòng 1: Số nguyên là độ bền của N.
Ví dụ
persist.inp persist.out Giải thích
99 2 Doben(99)=Doben(81)+1=Doben(8)+1+1=0+1+1=2
Bài 2. Đổi giày
Bờm là chủ một cửa hiệu bán giày. Một ngày nọ, Bờm kiểm tra kho và thấy trong kho còn lại 2*N


chiếc giày, trong đó có N chiếc giày chân trái với kích thước lần lượt là a
1
, a
2
, …, a
N
, N chiếc giày chân
phải với kích thước lần lượt là b
1
, b
2
, …, b
N
. Hai chiếc giày chỉ có thể hợp thành một đôi nếu chúng là một
cặp trái - phải có cùng kích thước. Bờm quyết định mang một số giày đến nhà sản xuất để đổi.
Hãy xác định giúp Bờm số ít nhất các chiếc giày cần đổi nếu cậu ta muốn cửa hiệu của mình có thể bán
được N đôi giày.
Dữ liệu vào từ file văn bản: shoes.inp
Dòng 1: Số nguyên N (1 ≤ N ≤ 100).
Dòng 2: N số nguyên a
1
, a
2
, …, a
N
(1 ≤ a
i
≤ 1000, i = 1, 2,…, N).
Dòng 3: N số nguyên b
1

, b
2
, …, b
N
(1 ≤ b
i
≤ 1000, i = 1, 2,…, N).
Kết quả ghi ra file văn bản: shoes.out
Dòng 1: Số nguyên là số giày ít nhất cần đổi.
Ví dụ
shoes.inp shoes.out Giải thích
3
1 3 1
3 2 1
1
Đổi 1 chiếc giày chân trái kích thước 1 thành giày chân trái kích thước
2 hoặc đổi 1 chiếc giày chân phải kích thước 2 thành giày chân phải
kích thước 1.
Bài 3. Đối xứng
Một số nguyên gọi là số đối xứng nếu viết dạng biểu diễn thập phân của số đó theo chiều ngược lại vẫn
thu được chính số đó. Cho số nguyên dương N có không quá 100 chữ số. Hãy xác định số nguyên đối xứng
nhỏ nhất lớn hơn N.
Dữ liệu vào từ file văn bản: nextpal.inp
Dòng 1: Số nguyên N
Kết quả ghi ra file văn bản: nextpal.out
Dòng 1: Số nguyên kết quả
Ví dụ
nextpal.inp Nextpal.out
99 101
—Hết—

Cán bộ coi thi không giải thích gì thêm
Hướng dẫn giải thuật
Câu 1: Tư tưởng giải thuật:
- Xây dựng hàm tính tích các chữ số của N
- Khi nào N>9 thì tăng d, đồng thời gán N:=tich(N);
- Ra ngoài in ra d (chính là độ bền của N)
Bài giải:
Var f,g:text;
d,n:longint;
Function tich(x:longint):longint;
Var s,a:longint;
Begin
s:=1;
repeat
a:=x mod 10;
x:=x div 10;
s:=s*a;
until x=0;
tich:=s;
End;
BEGIN
Assign(f,'persist.inp'); Reset(f);
Assign(g,'persist.out'); Rewrite(g);
Read(f,n);
d:=0;
While n>9 do
begin
inc(d);
n:=tich(n);
end;

Write(g,d);
Close(g);
Close(f);
END.
Câu 2:
Tư tưởng thuật giải:
- Xét lần lượt từng chiếc dày bên trái.
- Tìm chiếc dày đầu tiên bên phải trùng với chiếc dày bên trài đang xét, nếu có trùng thì đánh dầu
chiếc dày đó, còn không có trùng thì xét chiéu tiếp theo.
- Đếm số chiếc dày chưa đánh dấu bên phải chính là số dày phải đem đi đổi.
Bài giải:
Var f,g:text;
n,j,i,d:longint;
a,b:array [1..1000] of longint;
BEGIN
Assign(f,'shoes.inp');
Reset(f);
Assign(g,'shoes.out');
Rewrite(g);
Readln(f,n);
For i:=1 to n do read(f,a[i]);
Readln(f);
For i:=1 to n do read(f,b[i]);
d:=0;
i:=1;
repeat
j:=0;
repeat
inc(j);
until (a[i]=b[j]) or (j>n);

if a[i]=b[j] then b[j]:=0;
inc(i);
until i>n;
for i:=1 to n do
if b[i]<>0 then inc(d);
write(g,d);
Close(g);
Close(f);
END.

×