Hãy loại bỏ tất cả các khoảng trắng dư thừa của xâu s.. Biết khoảng trắng dư thừa là những khoảng trắng xuất hiện ở đầu xâu hoặc cuối xâu, những khoảng trắng đứng cạnh một khoảng trắng k
Trang 1Họ và tên thí sinh:……… ………… Chữ ký giám thị 1:
SỞ GDĐT BẠC LIÊU KỲ THI CHỌN HSG LỚP 10 VÒNG TỈNH
NĂM HỌC 2011 - 2012
* Lớp: 10 (Bảng B)
* Thời gian: 180 phút (Không kể thời gian giao đề)
ĐỀ
Câu 1:(6 điểm)
Viết chương trình tính toán ước số chung lớn nhất của hai số nguyên không âm (sử dụng
đệ qui)
Ví dụ:
A=5 B=10
A=7 B=2
USCLN là:5 USCLN là:1
Câu 2:(7 điểm)
Nhập vào từ bàn phím xâu s Hãy loại bỏ tất cả các khoảng trắng dư thừa của xâu s Biết
khoảng trắng dư thừa là những khoảng trắng xuất hiện ở đầu xâu hoặc cuối xâu, những
khoảng trắng đứng cạnh một khoảng trắng khác
Ví dụ: Nhập s: ‘ a b c ’
Î Xuất: ‘a b c’
Câu 3 (7 điểm) Phân tích số
Cho số tự nhiên n (n ≤ 100) Hãy cho biết có bao nhiêu cách phân tích số n thành tổng của dãy các số nguyên dương, các cách phân tích là hoán vị của nhau chỉ tính là một cách
Ví dụ: Với n=5, có 7 cách phân tích:
1 5 = 1 + 1 + 1 + 1 + 1
2 5 = 1 + 1 + 1 + 2
3 5 = 1 + 1 + 3
4 5 = 1 + 2 + 2
5 5 = 1 + 4
6 5 = 2 + 3
7 5 = 5
Dữ liêu vào: Cho trong file PTS.INP là 1 số tự nhiên n
Dữ liêu ra: Ghi vào file PTS.OUT duy nhất một số m là số cách phân tích số tự nhiên
n thành tổng của dãy các số nguyên dương
Ví dụ:
5 7
- HẾT -
(Gồm 01 trang)
ĐỀ CHÍNH THỨC
Trang 2SỞ GDĐT BẠC LIÊU KỲ THI CHỌN HSG LỚP 10 VÒNG TỈNH NĂM HỌC 2011 - 2012
* Lớp: 10 (Bảng B)
* Thời gian: 180 phút (Không kể thời gian giao đề)
HƯỚNG DẪN CHẤM
Câu 1: (6 điểm)
Code tham khảo:
Var A,B:Integer;
Function UCLN(A,B:Integer):Integer;
Var R:Integer;
Begin
R:=A Mod B;
If R=0 Then UCLN:=B
Else UCLN:=UCLN(B,R);
End;
Begin
Write('Nhap vao hai so');Readln(A,B);
Write('UCLN cua 2 so la',UCLN(A,B));
Readln
End
Ví dụ:
Dữ liệu nhập Dữ liệu xuất A=5 B=10
A=7 B=2 USCLN là:5 USCLN là:1
# Nếu học sinh không dùng đệ qui mà kết quả vẫn đúng thì chỉ được 2 điểm
# Nếu học sinh viết code chưa xong nhưng có ý tưởng thì chỉ được 1 điểm
# Nếu học sinh chưa viết code xong hoặc viết code xong nhưng kết quả không đúng thì chỉ
được 0,5 điểm
Câu 2: (7 điểm)
Hướng dẫn chấm: (Chú ý không còn khoảng trắng cuối xâu)
Test1: 2 điểm: s: ‘ a b c ’ -> a b c
Test2: 2 điểm: s: ‘ aa bb cc dd ’ -> aa bb cc dd
Test3: 3 điểm: s: ‘ 1 a b Q q ‘ -> 1 a b Q q
Code tham khảo:
Var s:string; i:byte; c:char;
Begin
Readln(s); c:=’ ’;
While s[length(s)] = ‘ ‘ do delete(s,length(s),1);
For i:=1 to length(s) do Begin
If (s[i]=’ ’) and (c=’ ’) then else write(s[i]);
C:=s[i];
(Gồm 02 trang)
ĐỀ CHÍNH THỨC
Trang 3End;
End
Bài 3 (7 điểm)
TEST 1 (1.5 ĐIỂM)
10 42
TEST 2 (1.5 ĐIỂM)
20 627
TEST 3 (2 ĐIỂM)
TEST 4 (2 ĐIỂM)
99 169229875
Code tham khảo
program dem_cach_phan_tich_so;
var
n,i,j:integer;
a:array[0 100,0 100] of longint;
f,f1:text;
begin
Assign(f,'PTS.inp');
Reset(f);
Readln(f,n);
close(f);
for i:=1 to n do begin a[0,i]:=0; a[i,0]:=1; end;
for i:=1 to n do
for j:=1 to n do
if i>j then a[i,j]:=a[i-1,j]
else a[i,j]:=a[i-1,j]+a[i,j-i];
Assign(f1,'PTS.out');
Rewrite(f1);
write(f1,a[n,n]);
close(f1);
end
HẾT