Республиканская олимпиада по информатике 2013–2014, Этап 2, Тур 1, 8-11 классы (3-нұсқа).

Жеңіс Шоңбаев. Батыс Қазақстан облысы, Дарынды балаларға арналған мамандандырылған С. Сейфуллин атындағы №11 облыстық қазақ мектеп-интернат кешені.

Енгізу файлының аты / Имя входного файла: C.in
Шығару файлының аты / Имя выходного файла: C.out
Есептің жауабы файлының аты / Имя файла решения задачи: C.{c,cpp,pas}
Уақыт шектеу / Ограничение по времени: 2 секунд
Жадыға шектеу / Ограничение по памяти: 64 мегабайт

C есебі Сандар
Сізге N саны және D цифры берілген. Кұрамында D цифры жоқ бүкіл N-таңбалы сандарды шығарыңыз.

Мәліметтерді енгізу форматы
Енгізу файлында N (1 ≤ N ≤ 7) саны және D (0 ≤ D ≤ 9) цифры берілген.
Мәліметтерді шығару форматы
Кұрамында D цифры жоқ бүкіл N-таңбалы сандарды өсу ретімен шығарыңыз.

Мысал / Пример

C.in C.out
1 3 0 1 2 4 5 6 7 8 9

Задача C Числа

Вам даны число N и цифра D. Выведите все N-значные числа, которые не содержат цифру D, в возрастающем порядке.

Формат входных данных
В единственной строке входного файла записаны число N (1 ≤ N ≤ 7) и цифра D (0 ≤ D ≤ 9).
Формат выходных данных
В выходном файле выведите все N-значные числа, которые не содержат цифру D, по одному в одной строке.

Есепте N (1 ≤ N ≤ 7)  таңбалы санның бастапқы және соңғы мәндерін анықтап алып, осы аралықтағы сандардың ішінен құрамында берілген цифры бар сандарды шығарып тастау керек.

var k:longint;
n,d,s1,s2,i,s:integer;
f:boolean;
label 1,2;
begin
assign(input,’c.in’); reset(input);
assign(output, ‘c.out’); rewrite(output);
readln(n,d);
if n=1 then begin s1:=0; s2:=9 end else
begin
s1:=1;
for i:=1 to n-1 do s1:=s1*10;
s2:=s1*10-1;
end;

for i:=s1 to s2 do
begin
f:=true;
s:=i;
1:k:=s mod 10; if k=d then begin f:=false; goto 2;end;
s:=s div 10;
if s>0 then goto 1;
2:if f=true then writeln(i);
end;
end.

Енгізу файлының аты / Имя входного файла: A.in
Шығару файлының аты / Имя выходного файла: A.out
Есептің жауабы файлының аты / Имя файла решения задачи: A.{c,cpp,pas}
Уақыт шектеу / Ограничение по времени: 2 секунд
Жадыға шектеу / Ограничение по памяти: 64 мегабайт

A есебі Факториал

N - Factorial — 1-ден N-ге дейінгі сандардың кобейтіндісі. Берілген N саны үшін, N - Factorial санының соңында қанша нөл бар екенін анықтаныз.

Мәліметтерді енгізу форматы

Енгізу файлында бір бүтін сан —  N (1 ≤ N ≤ 106) берілген.

Мәліметтерді шығару форматы

N - Factorial санының соңындағы нөлдер санын шығарыңыз.

Мысал / Пример

A.in A.out Комментарий
4610 012 1*2*3*4=241*2*3*4*5*6=7201*2*3*4*5*6*7*8*9*10=3628800

Задача A Четные

N - Factorial — это произведение всех чисел от 1 до N. Для заданного числа N определите, сколько нулей в конце десятичной записи N - Factorial.

Формат входных данных

В единственной строке входного файла содержится одно целое положительное число N (1 ≤ N ≤ 106).

Формат выходных данных

Выведите одно целое число — количество нулей в конце десятичной записи N - Factorial

Санның факториалын есептеу жеңіл көрінгенімен, бұл жағдайда N (1 ≤ N ≤ 106) шарты есепті күрделендіреді. Сондықтан ұзын арифметика тәсілін қолдану керек.

var
i,j,r,s,t,l,k,m,tt,n,x,y,z :integer;
a,c,d:array[1..1000] of integer;

procedure Kobeitu(f:integer; var m:integer);

begin
tt:=100; n:=tt; x:=4;
repeat
dec(x); k:=0;S:=0; y:=f+1;
repeat
dec(y);
s:=a[x]*c[y]+s+k;
k:=s div 10; s:=s mod 10;
d[n]:=d[n]+s; s:=d[n] div 10;
d[n]:=d[n] mod 10;
if y=1 then d[n-1]:=s+k;
dec(n);
until y=1;
n:=tt-(3-x+1);
until x=1;

for j:=1 to tt do if d[j]<>0 then break;
k:=0;
for x:=j to tt do begin inc(k); c[k]:=d[x]; d[x]:=0; end;
m:=k;
end;
begin
assign(input, ‘a.in’); reset(input);
assign(output,’a.out’); rewrite(output);
readln(r);
c[1]:=1; m:=1;
for i:=1 to r do
begin
t:=i;
for j:=3 downto 1 do
begin
a[j]:=t mod 10;
t:=t div 10;
end;
Kobeitu(m,z);
m:=z;
end;
s:=0;

for i:=m downto 1 do if c[i]=0 then inc(s) else break;
writeln(s);
end.

Енгізу файлының аты / Имя входного файла: B.in
Шығару файлының аты / Имя выходного файла: B.out
Есептің жауабы файлының аты / Имя файла решения задачи: B.{c,cpp,pas}
Уақыт шектеу / Ограничение по времени: 2 секунд
Жадыға шектеу / Ограничение по памяти: 64 мегабайт

Б есебі Цифрлар

Біз бір-бірімізге хат жазған кезде сандарды жиі қолданамыз. Сізге ағылшын тілінде жазылған сөйлем берілген. Сол сөйлемде кездесетін бүкіл цифрларды табу керек.

Мәліметтерді енгізу форматы

Енгізу файлында ағылшын тілінде жазылған бір сөйлем берілген. Сөйлемнің ұзындығы 100 символдан аспайды.

Мәліметтерді шығару форматы

Берілген сөйлемде кездесетін бүкіл цифрларды өсу ретімен жазыңыз.

Мысал / Пример

B.in

I owe you 491 tenge and I will return it when I will be in university at 15:22

B.out

12459

Задача Б Цифры

Когда мы переписываемся, мы часто используем цифры в нашем тексте. Вам дано одно предложение на английском языке. Нужно найти все цифры, которые встречаются в этом предложений хотя бы один раз.

Формат входных данных

В единственной строке входного файла содержится одно предложение на английском языке, которое состоит из не более чем 100 символов.

Формат выходных данных

В единственной строке выходного файла выведите все цифры, которые встречаются в данном предложений хотя бы один раз, в возрастающем порядке.

Есеп өте жеңіл деп ойлаймын. Түсінектеме жасаудың өзі артық.

var
f:array[0..9] of boolean;
i:integer;
s:string[1];

begin
assign(input,’b.in’); reset(input);
assign(output, ‘b.out’); rewrite(output);
for i:=0 to 9 do f[i]:=false;
while not eoln(input) do
begin
read(s);
if pos(s,’0123456789′)<>0 then f[pos(s,’0123456789′)-1]:=true;
end;

for i:=0 to 9 do if f[i]=true then write(i);
end.

 

Check Also

Аудандық олимпиада. ІІ-тур. 2016-2017 оқу жылы.

D есебі 5 бүтін сандар берілген. Осы сандардың арасынан төртеуін таңдағандағы қосындының ең үлкен жəне …

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.