Игра в числа. Не могу понять постановку - Turbo Pascal
Формулировка задачи:
Игра в числа Никифор и Трофим играют в следующую игру: они написали на доске натуральное число, не превосходящее 2000000000, и по очереди делают ходы, причем первым ходит Никифор. Ход состоит в том, что из написанного на доске числа вычитается любая его ненулевая цифра, и новое число записывается на доске вместо старого. Например, если на доске написано число 40534, то следующим числом может быть 40530, 40531 и 40529. Выигрывает тот, кто напишет число ноль. Напишите программу, которая определяет, кто выигрывает при наилучшей игре противников. Входные данные На входе содержится единственное число, с которого начинается игра. Выходные данные На первой строчке следует вывести 1 если выиграет Никифор и 2 в противном случае. Если выигрывает Никифор, то во вторую строку должен быть выведен первый ход, обеспечивающий выигрыш. Если таких ходов несколько, то достаточно вывести любой из них.
Пример Входные данные: 14 Выходные данные: 1 4 2 Вариант: Входные данные: 300 Выходные данные: 2 7Мне кода не надо. Просто понять по какому принципу будет назначаться следующие число. Или это с клавы?
Решение задачи: «Игра в числа. Не могу понять постановку»
var n: Longint; begin ReadLn(n); WriteLn(Ord(n mod 10=0)+1); if n mod 10<>0 then WriteLn(n mod 10); end.
Объяснение кода листинга программы
Этот код на Turbo Pascal выполняет следующую задачу: он читает число от пользователя, вычисляет его порядковый номер в диапазоне от 1 до 20 (если число находится в этом диапазоне), а затем выводит это число и его порядковый номер на экран. Если число не входит в диапазон от 1 до 20, то выводится только само число. Код состоит из следующих элементов:
ReadLn(n);
- эта строка считывает число от пользователя и сохраняет его в переменнойn
.WriteLn(Ord(n mod 10=0)+1);
- эта строка вычисляет порядковый номер числа в диапазоне от 1 до 20 и выводит его на экран. Если числоn
делится на 10 без остатка, то к порядковому номеру добавляется единица.if n mod 10<>0 then WriteLn(n mod 10);
- эта строка проверяет, делится ли числоn
на 10 без остатка. Если нет, то выводится само число.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д