//PascalABC.NET
var
a,i:integer;
b:array [0..9] of boolean;
begin
Readln(a);
for i:=0 to 9 do b[i]:=false;
While a>0 do
begin
if b[a mod 10]=false then b[a mod 10]:=true;
a:=a div 10;
end;
for i:=0 to 9 do if not b[i] then Writeln(i);
end.
<u><em>Для стека:</em></u>
const
<span> MAX_SIZE = 100;
</span>var
size, n: integer;
stack: array[1..MAX_SIZE] of integer;
procedure push(a: integer);
begin
inc(size);
stack[size] := a;
<span>end;
procedure view;
var
i: integer;
begin
for i := 1 to size do
write(stack[i], ' ');
writeln;
end;
<u><em>Для очереди:</em></u>
const
MAX_SIZE = 100;
var
head, tail: integer;
queue: array[1..MAX_SIZE] of integer;
procedure push(a: integer);
begin
queue[tail] := a;
inc(tail);
<span>end;
procedure view;
var
i: integer;
begin
for i := head to tail - 1 do
write(queue[i], ' ');
writeln;
<span>end;
<em><u>И стек и очередь реализованы с помощью массива. Нужно следить, чтобы размер структуры не был больше размера массива</u></em></span></span></span>
1) 1б,2в,3а
2)г
9)1б,2г,3в,4а
Складываем "в столбик"
123
+132
------
321
Обратим внимание на правый (младший) разряд. 3+2=1. Конечно же понятно, что не 1, а 11 - был перенос +1 в старший разряд.
Но в привычной десятичной системе счисления 3+2=5 и остается решить вопрос нахождения такого основания системы счисления х, при котором 5 превращается в 11.
1×х+1 = 5 → <u>x=4 </u>- это и есть ответ.
Можно проверить: 123₄ + 132₄ = 321₄ - все верно.
<em>// PascalABC.NET 3.3, сборка 1583 от 25.11.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var a:=ReadlnString.ToWords;
var i:=a.Select(t->t.Length).ToArray.IndexMin;
Writeln('Самое короткое слово "',a[i],'" длиной ',a[i].Length)
end.
<u>Пример</u>
Зеленые бесцветные идеи яростно спят
Самое короткое слово "идеи" длиной 4