Язык программирования - python
Когда Учитель достиг он понял, что должен раздать свои богатства, причём сделать это следующим образом: в первый день разделить все свои золотые монеты на 8 равных частей (счастливое число!), излишки (если таковые будут иметься) пожертвовать храму Будды, оставить себе одну восьмую часть, остальные раздать бедным.
Во второй день вновь разделить оставшиеся монеты на 8 частей и повторить вышеуказанные манипуляции. И продолжать так до тех пор, пока у него не останется так мало монет, что при делении их на 8 равных частей они все окажутся излишком.
Оставшиеся монеты можно оставить себе. Кроме того, Учитель не тратит свои деньги (во всяком случае, в дни после его кормят ученики, а в быту он аскетичен.
Хотя Учитель знает, конечно, сколько у него золотых монет изначально, но он не может сообразить, сколько монет окажется в конце — всё-таки он Учитель духовных практик, а не математики или программирования ему.
Иными словами, найдите первую цифру введённого числа при записи его в системе счисления с основанием 8.
Формат ввода
Одно целое число — изначальное количество монет у Учителя.
Формат вывода
Одно целое число — количество монет, которое останется у Учителя в конце.
procedure AllMake(p:array of integer; var avg:real);
begin
avg:=p.Average;
for var i:=0 to p.Length-1 do
if p[i]<avg then p[i]*=10
end;
begin
var n:=ReadInteger('Количество элементов в массиве:');
var a:=ArrRandom(n,1,50);
Writeln('Исходный массив'); a.Println;
var av:real;
AllMake(a,av);
Writeln('Среднее арифметическое равно ',av);
Writeln('Результирующий массив'); a.Println;
WriteAllText('out.txt',a.JoinIntoString)
end.
Тестовое решение:
Количество элементов в массиве: 15
Исходный массив
34 50 49 50 17 21 13 25 11 43 47 45 30 11 1
Среднее арифметическое равно 29.8
Результирующий массив
34 50 49 50 170 210 130 250 110 43 47 45 30 110 10
Файл out.txt дан во вложении.
begin
writeln('на каком этаже живёт Миша?');
readln(a);
writeln('на каком этаже находится лифт?');
readln(b);
writeln('за сколько секунд Миша поднимается на этаж?');
readln(sek_m);
writeln('за сколько секунд лифт поднимается на этаж?');
readln(sek_l);
sek_m:=sek_m*a-sek_m;
writeln('Миша поднимется на нужный этаж за ',sek_m,' сек.');
sek_l:=(sek_l*b+sek_l*a)-sek_l;
writeln('лифт поднимется на нужный этаж за ',sek_l,' сек.');
if (sek_m=sek_l) then writeln('Миша будет подниматься одинаковое количество времени')
else if (sek_l>sek_m) then writeln('Мише быстрее подняться самому')
else writeln('Мише быстрее подняться на лифте');
end.