ĐỀ THI TIN HỌC TRẺ
TỈNH PHÚ YÊN LẦN THỨ XII
Năm 2009 – Khối Trung học Cơ sở – Thời gian: 120 phút
![]() |
Bài 1: Dãy số nguyên
Dãy các số tự nhiên được viết ra thành một dãy vô hạn trên đường thẳng:
1234567891011121314..... (1)
Hỏi số ở vị trí thứ 1000 trong dãy trên là số nào?
Em hãy làm bài này theo hai cách: Cách 1 dùng suy luận logic và cách 2 viết
chương trình để tính toán và so sánh hai kết quả với nhau.
Tổng quát bài toán trên: Chương trình yêu cầu nhập số K từ bàn phím và in
ra trên màn hình kết quả là số nằm ở vị trì thứ K trong dãy (1) trên. Yêu cầu
chương trình chạy càng nhanh càng tốt.
Bài 2: Dãy
số Fibonaci
Như các
bạn đã biết dãy số Fibonaci là dãy
1, 1, 2, 3, 5, 8, .... Dãy này cho bởi công thức đệ qui sau:
F1 = 1,
F2 =1, Fn = Fn-1 + Fn-2 với n > 2
1. Chứng minh khẳng định sau:
Mọi số
tự nhiên N đều có thể biểu diễn duy nhất dưới dạng tổng của một số số trong dãy
số Fibonaci.
N = akFk
+ ak-1Fk-1 + .... a1F1
Với biểu
diễn như trên ta nói N có biểu diễn Fibonaci
là akak-1...a2a1.
2. Cho trước số tự nhiên N, hãy tìm biểu
diễn Fibonaci của số N.
Input:
Tệp văn
bản P11.INP bao gồm nhiều dòng. Mỗi dòng ghi một số tự nhiên.
Output:
Tệp
P11.OUT ghi kết quả của chương trình: trên mỗi dòng ghi lại biểu diễn Fibonaci của các số tự nhiên tương ứng
trong tệp P11.INP.
Ví dụ:
P11.INP
|
P11.OUT
|
7
13
9
5
11
|
7 = 5 + 2
13 = 13
9 = 8 + 1
5 = 5
11 = 8 + 3
|
Bài 3: Palindrom
Số Palindrom là số đối xứng nghĩa là đọc
từ trái qua phải giống như đọc từ phải qua trái. (ví dụ: 15951; 44444; … Dĩ
nhiên số 01210 không phải là số đối xứng). Em hãy viết chương trình hiển thị
các số đối xứng có 5 chữ số và chia hết cho một số nguyên nhập từ bàn phím,
hiển thị theo qui cách mỗi dòng hiện 5 số, mỗi trang màn hình chứa 100 số và đếm xem có bao nhiêu số như vậy?
Dữ liệu vào: Số nguyên.
Kết quả ra: Các số đối xứng
có 5 chữ số và đếm có bao nhiêu số. Hiển thị theo qui cách.
Ví dụ:
Dữ liệu vào
|
Kết quả ra
|
13
|
10101
11011 15951 16861
17771
18681
19591 20202 21112
22022
26962
27872 28782 29692
30303
31213
32123 33933 34843
35753
36663
37573 38483 39393
40004
44944
45854 46764 47674
48584
49494
50105 51015 55955
56865
57775
58685 59595 60206
61116
62026
66966 67876 68786
69696
70307
71217 72127 73037
77977
78887
79797 80408 81318
82228
83138
84048 88988 89898
90509
91419
92329 93239 94149
95059
98689
99599
Co tat ca: 67 so
|
Cán bộ coi thi không giải thích gì thêm !
ĐÁP ÁN
ĐỀ THI TIN HỌC TRẺ
TỈNH PHÚ YÊN LẦN THỨ XII
Năm 2009 – Khối Trung học Cơ sở – Thời gian: 120 phút
![]() |
Câu 1: Dãy số nguyên (20đ)
Dãy đã cho là dãy các
số tự nhiên viết liền nhau:
123456789 101112...99 100101102...999 100010011002...9999 10000...
9 x 1 = 9
90 x 2 = 180
900 x 3 = 2700
9000 x 4 = 36000 ...
Ta có nhận xét sau:
- Đoạn thứ 1 có 9 chữ
số;
- Đoạn thứ 2 có 180
chữ số;
- Đoạn thứ 3 có 2700
chữ số;
- Đoạn thứ 4 có 36000
chữ số;
- Đoạn thứ 5 có 90000
x 5 = 450000 chữ số ...
Với k = 1000 ta có: k
= 9 + 180 + 3.270 + 1.
Do đó, chữ số thứ k là chữ số đầu tiên của số 370,
tức là chữ số 3.
Câu 2: Dãy số Fibonaci (30đ)
P11.INP
|
P11.OUT
|
7
13
9
5
11
100
20
40
77
44
66
32
16
71
56
87
61
|
7
= 5 + 2
13
= 13
9
= 8 + 1
5
= 5
11
= 8 + 3
100
= 89 + 8 + 3
20
= 13 + 5 + 2
40
= 34 + 5 + 1
77
= 55 + 21 + 1
44
= 34 + 8 + 2
66
= 55 + 8 + 3
32
= 21 + 8 + 3
16
= 13 + 3
71
= 55 + 13 + 3
56
= 55 + 1
87
= 55 + 21 + 8 + 3
61
= 55 + 5 + 1
|
Câu 3: (50đ)
Dữ liệu vào
|
Kết quả ra
|
13
|
10101
11011 15951 16861
17771
18681
19591 20202 21112
22022
26962
27872 28782 29692
30303
31213
32123 33933 34843
35753
36663
37573 38483 39393
40004
44944
45854 46764 47674
48584
49494
50105 51015 55955
56865
57775
58685 59595 60206
61116
62026
66966 67876 68786
69696
70307
71217 72127 73037
77977
78887
79797 80408 81318
82228
83138
84048 88988 89898
90509
91419
92329 93239 94149
95059
98689 99599
Co tat ca: 67 so
|
33
|
13431
18381 21912 23232
26862
28182
31713 36463 41314
44944
46264
49894 51115 54745
56065
59695
64546 69496 74347
77977
79297
82828 84148 87778
89098
92629
97579
Co tat ca: 27 so
|
43
|
11911
13631 15351 17071
28982
32723
37973 39693 41714
43434
45154
58785 60806 62526
64246
77877
79597 81618 83338
85058
96969
Co tat ca: 21 so
|
ĐÁP ÁN
ĐỀ THI TIN HỌC TRẺ
TỈNH PHÚ YÊN LẦN THỨ XII
Năm 2009 – Khối Trung học Cơ sở – Thời gian: 120 phút
![]() |
Câu 1: Dãy số nguyên (20đ)
Dãy đã cho là dãy các
số tự nhiên viết liền nhau:
123456789 101112...99 100101102...999 100010011002...9999 10000...
9 x 1 = 9
90 x 2 = 180
900 x 3 = 2700
9000 x 4 = 36000 ...
Ta có nhận xét sau:
- Đoạn thứ 1 có 9 chữ
số;
- Đoạn thứ 2 có 180
chữ số;
- Đoạn thứ 3 có 2700
chữ số;
- Đoạn thứ 4 có 36000
chữ số;
- Đoạn thứ 5 có 90000
x 5 = 450000 chữ số ...
Với k = 1000 ta có: k
= 9 + 180 + 3.270 + 1.
Do đó, chữ số thứ k là chữ số đầu tiên của số 370,
tức là chữ số 3.
Chương trình:
Program Daycacsotunhien;
var n, Result: LongInt;
procedure ReadInput;
begin
Write('Ban hay nhap so K: '); Readln(n);
end;
procedure Solution;
var
i, Sum, Num, Digits: LongInt;
begin
Sum := 9; Num := 1; Digits := 1;
while Sum < n do
begin
Num := Num * 10; Inc(Digits);
Inc(Sum, Num * 9 * Digits);
end;
Dec(Sum, Num * 9 * Digits); Dec(n, Sum);
Num := Num + (n - 1) div Digits;
n := (n - 1) mod Digits + 1;
for i := 1 to Digits - n do Num := Num div 10;
Result := Num mod 10;
end;
procedure WriteOutput;
begin
Writeln('Chu so can tim la: ', Result);
Readln;
end;
begin
ReadInput;
Solution;
WriteOutput;
end.
Câu 2: Dãy số Fibonaci (30đ)
{$R+}
const
Inp = 'P11.INP';
Out = 'P11.OUT';
var
n: LongInt;
Fibo: array[1..Ind ] of LongInt;
procedure Init;
var
i: Integer;
begin
Fibo[1] := 1; Fibo[2] := 1;
for i := 3 to Ind do Fibo[i] := Fibo[i - 1] +
Fibo[i - 2];
end;
procedure Solution;
var
i: LongInt;
hfi, hfo: Text;
begin
Assign(hfi, Inp);
Reset(hfi);
Assign(hfo, Out);
Rewrite(hfo);
while not Eof(hfi) do
begin
Readln(hfi, n);
Write(hfo, n, ' = ');
i := Ind; while Fibo[i] > n do Dec(i);
Write(hfo, Fibo[i]);
Dec(n, Fibo[i]);
while n > 0 do
begin
Dec(i);
if n >= Fibo[i] then
begin
Write(hfo, ' + ', Fibo[i]);
Dec(n, Fibo[i]);
end;
end;
Writeln(hfo);
end;
Close(hfo);
Close(hfi);
end;
begin
Init;
Solution;
end.
P11.INP
|
P11.OUT
|
7
13
9
5
11
100
20
40
77
44
66
32
16
71
56
87
61
|
7
= 5 + 2
13
= 13
9
= 8 + 1
5
= 5
11
= 8 + 3
100
= 89 + 8 + 3
20
= 13 + 5 + 2
40
= 34 + 5 + 1
77
= 55 + 21 + 1
44
= 34 + 8 + 2
66
= 55 + 8 + 3
32
= 21 + 8 + 3
16
= 13 + 3
71
= 55 + 13 + 3
56
= 55 + 1
87
= 55 + 21 + 8 + 3
61
= 55 + 5 + 1
|
Câu 3: (50đ)
Dữ liệu vào
|
Kết quả ra
|
13
|
18681
19591 20202 21112
22022
26962
27872 28782 29692
30303
31213
32123 33933 34843
35753
36663
37573 38483 39393
40004
44944
45854 46764 47674
48584
49494
50105 51015 55955
56865
57775
58685 59595 60206
61116
62026
66966 67876 68786
69696
70307
71217 72127 73037
77977
78887
79797 80408 81318
82228
83138
84048 88988 89898
90509
91419
92329 93239 94149
95059
98689
99599
Co tat ca: 67 so
|
33
|
13431
18381 21912 23232
26862
28182
31713 36463 41314
44944
46264
49894 51115 54745
56065
59695
64546 69496 74347
77977
79297
82828 84148 87778
89098
92629
97579
Co tat ca: 27 so
|
43
|
11911
13631 15351 17071
28982
32723
37973 39693 41714
43434
45154
58785 60806 62526
64246
77877
79597 81618 83338
85058
96969
Co tat ca: 21 so
|
Nhận xét
Đăng nhận xét