Я беру число, которое вводит пользователь, добавляет 7, затем делит на 10 и берет остаток и использует это значение в качестве моего нового значения. Мы также предполагаем, что номер входа будет ВСЕГДА иметь длину 4 символа, поэтому, например, пользователь будет вводить 1234 или 1235 или 9999 и т.д. Он никогда не будет больше или меньше этого.
Это будет выглядеть примерно так:
int num;
printf("Input a number: ");
scanf("%d", &num);
num = (num + 7) % 10;
printf("Here is the number after my calculations: %d", num);
Теперь мне нужно выяснить, как это сделать.
Как получить исходный номер, который был введен, если мне предоставляется только остаток?
Есть много входов, которые будут давать тот же результат (например, все 1000, 1010, 1020, 1030 и т.д. Вернут 7). Поэтому нет возможности восстановить четырехзначный оригинал.
Если, с другой стороны, вы знали, что ввод был однозначным, вы можете сделать следующее, чтобы восстановить его:
num = (num + 3) % 10;
(Добавление 3 в арифметике по модулю 10 аналогично вычитанию 7.)
Существуют и другие обстоятельства, при которых вы можете восстановить число, но, к сожалению, в вашем четырехзначном общем случае это просто невозможно.
Чтобы быть более конкретным из того, что было сказано в комментариях: остаток после деления на 10 дает вам последнюю (наименее значимую) десятичную цифру ввода.
Предположим, что я получаю остаток от 2. Если входной сигнал был четыре цифры, это означает, что вход был xyz2
, где x
, y
и z
- каждая цифра. Любая цифра, которую я заполняю для x
, y
и/или z
дает правильный результат, оставшийся после деления.
После этого у нас остается вопрос об обращении с добавлением 7-й части. Это просто означает, что для любого заданного xyz2
нам нужно вычесть 7 (и нормализовать, добавив 10, если результат отрицательный), чтобы получить вход, который мог бы произвести этот результат. Каждое возможное значение для xyz
части будет действительным входом, который мог бы привести к такому результату. В результате отсутствуют какие-либо данные, указывающие, какой из этих входов использовался для получения этого конкретного результата.