Thêm đề HSG lớp 9 TP Huế
This commit is contained in:
parent
71a6e456b5
commit
dfaf87f869
48
9/TP-Huế-2014/README.md
Normal file
48
9/TP-Huế-2014/README.md
Normal file
|
@ -0,0 +1,48 @@
|
|||
# THI CHỌN HỌC SINH GIỎI CẤP THÀNH PHỐ
|
||||
|
||||
UBND THÀNH PHỐ HUẾ
|
||||
PHÒNG GIÁO DỤC VÀ ĐÀO TẠO
|
||||
MÔN TIN HỌC - NĂM HỌC: 2013-2014
|
||||
Thời gian: 120 phút (Không kể thời gian giao đề)
|
||||
|
||||
## Bài 1 (3 điểm)
|
||||
|
||||
Hai số tự nhiên `n`, `m` được gọi là nguyên tố tương đương nếu chúng có chung
|
||||
các ước số nguyên tố. Hãy viết chương trình nhập vào hai số `n`, `m` và kiểm
|
||||
tra chúng có là nguyên tố tương đương với nhau hay không.
|
||||
|
||||
**Ví dụ:** số 75 và số 15 là nguyên tố tương đương vì chúng có cùng các ước số
|
||||
nguyên tố là 3 và 5.
|
||||
|
||||
## Bài 2 (3 điểm)
|
||||
|
||||
Cho hệ phương trình bậc nhất hai ẩn:
|
||||
|
||||
ax + by = c
|
||||
a'x + b'y = c'
|
||||
|
||||
Hãy viết chương trình giải hệ phương trình trên, đồng thời xác định vị trí
|
||||
tương đối của hai đường thẳng `d: ax + by = c` và `d': a'x + b'y =c'` đã tạo
|
||||
nên hệ phương trình.
|
||||
|
||||
## Bài 3 (4 điểm)
|
||||
|
||||
Cho hai xâu `X`, `Y` chứa các kí tự số từ 0 đến 9 và không dài quá 250 kí tự.
|
||||
|
||||
Hãy viết chương trình tạo ra xâu `ST` thoả mãn các điều kiện sau:
|
||||
|
||||
* Gồm các kí tự số vừa có mặt ở xâu `X`, vừa có mặt ở xâu `Y`
|
||||
* Các kí tự số trong xâu `ST` chỉ xuất hiện duy nhất một lần
|
||||
* Giá trị xâu `ST` nhận được là một số đạt giá trị lớn nhất
|
||||
|
||||
Dữ liệu vào cho bởi file `INPUT.INP` chứa giá trị xâu `X` và xâu `Y`, mỗi xâu
|
||||
nằm trên một dòng.
|
||||
|
||||
Dữ liệu ra chứa ở file `OUTPUT.OUT` là số lớn nhất nhận được.
|
||||
|
||||
**Ví dụ:**
|
||||
|
||||
INPUT.INP | OUTPUT.OUT
|
||||
--------- | ----------
|
||||
19012304 | 43210
|
||||
034012 |
|
15
9/TP-Huế-2014/bai1.pas
Normal file
15
9/TP-Huế-2014/bai1.pas
Normal file
|
@ -0,0 +1,15 @@
|
|||
var
|
||||
n, m, p: qword;
|
||||
|
||||
begin
|
||||
read(n, m);
|
||||
|
||||
while m <> 0 do
|
||||
begin
|
||||
p := n mod m;
|
||||
n := m;
|
||||
m := p
|
||||
end;
|
||||
|
||||
writeln(n <> 1)
|
||||
end.
|
35
9/TP-Huế-2014/bai2.pas
Normal file
35
9/TP-Huế-2014/bai2.pas
Normal file
|
@ -0,0 +1,35 @@
|
|||
var
|
||||
a, b, c, e, p, k, tmp: real;
|
||||
|
||||
function det(a, b, c, d: real): real;
|
||||
begin
|
||||
exit(a * d - b * c)
|
||||
end;
|
||||
|
||||
begin
|
||||
read(a, b, c, e, p, k);
|
||||
|
||||
tmp := det(a, b, e, p);
|
||||
|
||||
if tmp <> 0 then
|
||||
begin
|
||||
writeln('x = ', (det(c, b, k, p) / tmp):0:6);
|
||||
writeln('y = ', (det(a, c, e, k) / tmp):0:6);
|
||||
writeln('Hai đường thẳng cắt nhau.')
|
||||
end
|
||||
else if c <> k then
|
||||
begin
|
||||
writeln('Phương trình vô nghiệm.');
|
||||
writeln('Hai đường thẳng song song.')
|
||||
end
|
||||
else
|
||||
begin
|
||||
if a = 0 then
|
||||
writeln('y = ', (c / b):0:6)
|
||||
else if b = 0 then
|
||||
writeln('x = ', (c / a):0:6)
|
||||
else
|
||||
writeln('x = ', (-b / a):0:6, 'y + ', (c / a):0:6);
|
||||
writeln('Hai đường thẳng trùng nhau.')
|
||||
end;
|
||||
end.
|
34
9/TP-Huế-2014/bai3.pas
Normal file
34
9/TP-Huế-2014/bai3.pas
Normal file
|
@ -0,0 +1,34 @@
|
|||
var
|
||||
x, y: string;
|
||||
f: text;
|
||||
a: array[0 .. 9] of shortint;
|
||||
b: shortint;
|
||||
c: char;
|
||||
|
||||
begin
|
||||
assign(f, 'INPUT.INP');
|
||||
reset(f);
|
||||
readln(f, x);
|
||||
readln(f, y);
|
||||
close(f);
|
||||
|
||||
fillchar(a, 0, sizeof(a));
|
||||
|
||||
for c in x do
|
||||
a[ord(c) - 48] := 1;
|
||||
|
||||
for c in y do
|
||||
begin
|
||||
b := ord(c) - 48;
|
||||
if a[b] = 1 then
|
||||
a[b] := 2
|
||||
end;
|
||||
|
||||
assign(f, 'OUTPUT.OUT');
|
||||
rewrite(f);
|
||||
for b := 9 downto 0 do
|
||||
if a[b] = 2 then
|
||||
write(f, b);
|
||||
writeln(f);
|
||||
close(f)
|
||||
end.
|
30
THT/B/QG-2016/trigrid.c
Normal file
30
THT/B/QG-2016/trigrid.c
Normal file
|
@ -0,0 +1,30 @@
|
|||
#include <stdio.h>
|
||||
|
||||
|
||||
const long long a[] = {4, 3, 5, 6, 111, 222, 3333, 4444, 55555, 666666, 7777777,
|
||||
88888888, 999999999, 123456789123456789,
|
||||
1000000000000000000};
|
||||
|
||||
long long quadratic(long long x, char a, char b, char c)
|
||||
{
|
||||
return a * x * x + b * x + c;
|
||||
}
|
||||
|
||||
int main()
|
||||
{
|
||||
char i;
|
||||
long long k, q;
|
||||
FILE *f;
|
||||
|
||||
f = fopen("TRIGRID.TXT", "w");
|
||||
|
||||
for (i = 0; i < 15; i++) {
|
||||
q = a[i] % 2016;
|
||||
k = a[i] / 2016 % 2016 * 252 * quadratic(q, 6, 10, 2);
|
||||
fprintf(f, "%d\n", (k + quadratic(q, 2, 5, 2) * q / 8) % 2016);
|
||||
}
|
||||
|
||||
fclose(f);
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in a new issue