Условие задачи:
На входе программы имеется натуральное число [latex]n (n > 9)[/latex]. Нужно вывести предпоследнюю справа цифру (разряд десятков) числа [latex]n[/latex].
Входные данные:
Натуральное число [latex] n (n > 9) [/latex].
Выходные данные:
Цифра разряда десятков числа [latex] n [/latex].
Тесты:
№ | Входные данные | Выходные данные |
1 | 10 | 1 |
2 | 197 | 9 |
3 | 4638 | 3 |
4 | 72410 | 1 |
5 | 6543732 | 3 |
Код программы
1 2 3 4 5 6 7 8 9 |
#include <iostream> using namespace std; int main() { int n; cin >> n; cout << (n / 10) % 10; return 0; } |
Решение:
Идея данного решения заключается в том, чтобы с помощью целочисленного деления числа [latex]n (n > 9)[/latex] на 10 избавиться от последней цифры в числе [latex]n[/latex]. Затем вычисляем остаток от деления для того, чтобы осталась последняя цифра полученного числа, которая и является предпоследней цифрой справа (разряд десятков) в числе [latex]n[/latex].
Ссылки:
Задача на e-olymp
Решение задачи на ideone
Засчитанное решение на e-olymp
Странное название дал задаче автор, правда?
Получилось почти хорошо 🙂
— Видимо задача изначально писалась на украинском, а потом фраза «Потрібно вивести передостанню справа цифру» автоматически была переведена на русский. А, поскольку справа (укр.) переводится как дело (рус.) получилась эта смешная оговорка. Исправьте, пожалуйста.
— В тестах всегда нужно проверять границы области допустимых значений. Часто именно там программы начинают «чудить». В Вашем случае такой границей будет 10. Хоть с ним и все хорошо, но его нужно включить в тесты.
— «делим с остатком на 10» это не то, что мы делаем. Мы вычисляем остаток от деления. Когда делят с остатком, ищут частное и остаток. Нам частное ненужно.
— В ключевые слова можно добавить что-то про десятичные цифры, позиционные системы счисления или что-то другое в этом роде.
Если учесть, что существует задача с названием Цифра 3 от того же автора, то можно сделать вывод, что он читает справа налево. Исправил ошибки.
Уберите кириллицу из ссылки.
☝