На доске написано число 1. за один ход его можно умножить на 7 или добавить к нему единицу. за какое минимальное количество ходов можно получить число 100019?
Идем от обратного, Нужно получить из 100019 операциями -1 и /7 число 1. 1,2,3) Целочисленно 100019 на 7 не делится. ближайшее число, делимое на 7 это 100016 ( целочисленно делим 100019/7 = 14288, 14288*7=100016). Для этого нужно сделать трижды операцию -1 100019-1-1-1=100016 4) 100016/7 = 14288. 5) 14288 опять не делится. Ближайшее число 14287. 14288-1=14287 6) 14287/7=2041 7,8,9,10) 2041-1-1-1-1=2037 11) 2037/7=291 12,13,14,15) 291-1-1-1-1=287 16) 287/7=41 17,18,19,20,21,22) 41-1-1-1-1-1-1=35 23) 35/7=5 24,25,26,27) 5-1-1-1-1=1
var a,n,i,j,s:integer; begin writeln('Введите количество цифр в числе'); readln(n); for i:=1 to n do begin writeln('Введите ',i,' цифру из ',n); readln(a); for j:=1 to n-i do a:=a*10; s:=s+a; end; writeln('Натуральное число: ',s); end.
Тестовое решение
Введите количество цифр в числе 5 Введите 1 цифру из 5 9 Введите 2 цифру из 5 2 Введите 3 цифру из 5 7 Введите 4 цифру из 5 3 Введите 5 цифру из 5 1 Натуральное число: 92731
Решение №2 Если очень надо использовать массив (хотя на мой взгляд совсем не нужно)
//PascalABC.NET (версия 3.1, сборка 1198) var a,n,i,j,s:integer; mas:array[1..10]of integer; begin writeln('Введите количество цифр в числе'); readln(n); for i:=1 to n do begin writeln('Введите ',i,' цифру из ',n); readln(mas[i]); a:=mas[i]; for j:=1 to n-i do a:=a*10; s:=s+a; end; writeln('Натуральное число: ',s); end.
Тестовое решение
Введите количество цифр в числе 5 Введите 1 цифру из 5 5 Введите 2 цифру из 5 4 Введите 3 цифру из 5 3 Введите 4 цифру из 5 2 Введите 5 цифру из 5 2 Натуральное число: 54322
1,2,3) Целочисленно 100019 на 7 не делится. ближайшее число, делимое на 7 это 100016 ( целочисленно делим 100019/7 = 14288, 14288*7=100016). Для этого нужно сделать трижды операцию -1
100019-1-1-1=100016
4) 100016/7 = 14288.
5) 14288 опять не делится. Ближайшее число 14287.
14288-1=14287
6) 14287/7=2041
7,8,9,10) 2041-1-1-1-1=2037
11) 2037/7=291
12,13,14,15) 291-1-1-1-1=287
16) 287/7=41
17,18,19,20,21,22) 41-1-1-1-1-1-1=35
23) 35/7=5
24,25,26,27) 5-1-1-1-1=1
Итого я насчитал 27 ходов.