Разведчики-математики для того, чтобы опознать своих, используют числовые пароли. Услышав...

0 голосов
1.5k просмотров

Разведчики-математики для того, чтобы опознать своих, используют числовые пароли. Услышав число-пароль, разведчик должен возвести его в квадрат и сказать в ответ первую цифры дробной части полученного числа. Напишите программу, которая по полученному паролю (вещественному числу) вычисляет число-ответ. Пример: Введите пароль: 1.92 Ответ: 6 (потому что 1,922 = 3, 6 864…, первая цифра дробной части – 6) В КУМИРЕ пожалуйста!!!


Математика (88 баллов) | 1.5k просмотров
Дан 1 ответ
0 голосов

Кумир я не знаю, а что эту экзотика ещё преподают?
Он нигде, кроме школ, никогда не использовался.
Напишу только алгоритм.
1) Начало
2) Ввод исходного числа n.
3) n = n*n // возводим n в квадрат
4) n = 10*n // умножаем на 10. Теперь десятые доли стали единицами
5) n = [n] // оставляет целую часть, дробную отбрасываем
6) n = n - [n/10]*10 // вычисляем остаток от деления на 10, то есть цифру единиц.
7) Вывод n
8) Конец.
Объяснение. Допустим, мы ввели n = 1,4.
В 3 пункте мы умножили его само на себя, то есть возвели в квадрат. Стало n = 1,96.
Нам нужно получить цифру 9.
В 4 пункте мы умножили число на 10, получили n = 19,6.
В 5 пункте отбросили дробную часть, стало n = 19.
В 6 пункте самая трудная операция:
n = n - [n/10]*10 = 19 - [1,9]*10 = 19 - 1*10 = 9
Таким образом, мы получаем последнюю цифру любого целого числа, то есть остаток от деления на 10.
Вообще-то вместо этой сложной формулы во многих языках есть готовая функция Mod, дающая сразу остаток от деления. Пишется так:
n = n Mod 10
Из числа 19 сразу получаем 9.
Если такая функция есть в Кумире, используйте её. Если нет, тогда мою формулу.

(320k баллов)