3+(2+2+2+2+2+2+2+1)=18. Это восемь значений одна команда. каждая двойка кроме предпосленей может разбиваться на (1+1) и их 6, т.е. надо рассмотреть все случаи изменения, значит в каждом случае заменять 2 н 1+1 и у нас выходит 21 команда плюс самая первая, значит ответ 22 команды
39
Язык - Ruby
def numbers_sum(n)
n = n.to_s.chars
sum = 0
n.each do |c|
sum += c.to_i()
end
return sum
end
k=0
for i in 1..1000
if numbers_sum(i.to_s(10)) == numbers_sum(i.to_s(3))
k+=1
end
end
p k
Var M, Day : integer; Sm, S : real;
begin
writeln('Вычисление стоимости телефонного разговора');
writeln('Введите исходные данные');
write('Стоимость минуты разговора, руб. ');
readln(Sm);
write('Длительность разговора (целое количество минут) ');
readln(M);
write('День недели (1-понедельник, ... 7-воскресенье) ');
readln(Day);
S:=Sm*M;
if (Day=6)or(Day=7)
then writeln('Стоимость разговора с учетом скидки = ',S*0.8)
else writeln('Стоимость разговора = ',S);
end.
Пример:
Вычисление стоимости телефонного разговора
Введите исходные данные
Стоимость минуты разговора, руб. 3.2
Длительность разговора (целое количество минут) 6
День недели (1-понедельник, ... 7-воскресенье) 7
Стоимость разговора с учетом скидки = 15.36
1) 8
2) 7 выведет 1
3)
11 строка, поменять на k := k + 1;
14 строка заменить на if n = 1 then
Рабочий код
var
n, k: integer;
begin
read(n);
k := 0;
while n mod 7 = 0 do
begin
k := k + 1;
n := n div 7;
end;
if n = 1 then
writeln(k)
else
writeln('He существует')
end.
Правильное решение данной задачи
const
divider = 7;
var
n: integer;
k: real;
begin
read(n);
k := ln(n) / ln(divider);
if round(k) = k then
writeln(round(k))
else
writeln('He существует');
end.