N div 10 - это результат отбрасывания последней цифры из N,
т.е. в результате S будет содержать сумму цифр N
Сама же программа считает сумму цифр числа S, затем сумму цифр получившегося числа, и т.д., пока не получится одна цифра.
Кажется, такую цифру называют "цифровым корнем" числа, но на самом деле в десятичной системе счисления это просто остаток от деления на 9.
(поскольку (10*a + b) mod 9 = (9*a + a + b) mod 9 = (a+b) mod 9)
Для вывода 0 и 7 на вход надо подать число S = 7
Для вывода 1 и 7 на вход нужно подать число >= 10 с суммой цифр = 7, минимальным таким числом является 16.
Для вывода 2 и 7 на вход нужно подать такое число, что если сумму его цифр передать на вход, будет выведено 1 и 7. Т.е. сумма цифр будет по крайней мере не меньше 16, значит само число не меньше 79 (это наименьшее число, сумма цифр которых >= 16).
Для вывода 3 и 7 нужно подать число, сумма цифр которого при передаче на вход дас результат 2 и 7, т.е. сумма цифр не меньше 79, тогда само число не меньше 799999999 (наименьшее число с суммой цифр >= 79).
Получаем, что число S = 799999999 дает требуемый вывод, и не существует чисел меньше, которые бы тоже давали такой результат (показано ранее + можно дополнительно проверить программно, перебирая всевозможные S, занимает несколько минут).
//PascalABC.Net 3.0, сборка 1064 var s,w:string; begin Write('Введите предложение: '); Readln(s); Write('Введите искомое слово: '); Readln(w); s:=' '+s+' '; if Pos(' '+w+' ',s)>0 then Writeln('Слово входит в предложение') else Writeln('Слово не входит в предложение') end.
Тестовые решения: Введите предложение: А роза упала на лапу Азора Введите искомое слово: роза Слово входит в предложение
Введите предложение: Вчера смотрели старую кинопанораму Введите искомое слово: кино Слово не входит в предложение
Введите предложение: Интересное было кино или так себе? Введите искомое слово: кино Слово входит в предложение
Замечание: В программе было обращено внимание на то, что "слово" не может быть частью другого слова, а должно являться самостоятельным членом предложения. В противном случае принято говорить не о слове, а о контексте (подстроке)
Пока N > 0
S := S + N mod 10
N := N div 10
N mod 10 - это последняя цифра числа N,
N div 10 - это результат отбрасывания последней цифры из N,
т.е. в результате S будет содержать сумму цифр N
Сама же программа считает сумму цифр числа S, затем сумму цифр получившегося числа, и т.д., пока не получится одна цифра.
Кажется, такую цифру называют "цифровым корнем" числа, но на самом деле в десятичной системе счисления это просто остаток от деления на 9.
(поскольку (10*a + b) mod 9 = (9*a + a + b) mod 9 = (a+b) mod 9)
Для вывода 0 и 7 на вход надо подать число S = 7
Для вывода 1 и 7 на вход нужно подать число >= 10 с суммой цифр = 7, минимальным таким числом является 16.
Для вывода 2 и 7 на вход нужно подать такое число, что если сумму его цифр передать на вход, будет выведено 1 и 7. Т.е. сумма цифр будет по крайней мере не меньше 16, значит само число не меньше 79 (это наименьшее число, сумма цифр которых >= 16).
Для вывода 3 и 7 нужно подать число, сумма цифр которого при передаче на вход дас результат 2 и 7, т.е. сумма цифр не меньше 79, тогда само число не меньше 799999999 (наименьшее число с суммой цифр >= 79).
Получаем, что число S = 799999999 дает требуемый вывод, и не существует чисел меньше, которые бы тоже давали такой результат (показано ранее + можно дополнительно проверить программно, перебирая всевозможные S, занимает несколько минут).