Автор оригинала: Pankaj Kumar.
Привет! Сегодня давайте узнаем что-то новое и интересное, номер Диария. Мы бы поняли, что это за число, а затем реализовали бы программу, чтобы проверить, является ли число номером Diarium или нет.
Что такое номер дневника?
Число является числом диариума, если сумма каждой цифры, возведенной в степень их соответствующих позиций, равна исходному числу.
Определение числа Disarium : ^1 + b^2 + c^3 + d^4 + … . и так далее.
Рекомендуемое чтение: Реализация конвертера Цельсия в Фаренгейт в Python tkinter
Примеры номера диария
Пример 1: 153
Расчет (по цифрам^1 + 5^2 + + 25+
Выполненный расчет не равен исходному числу. Следовательно, это число не является числом диария.
Пример 2: 175
Расчет (по цифрам^1 + 7^2 + + 49 +
Выполненные вычисления непосредственно равны исходному числу. Следовательно, число-это число Диария.
Алгоритм проверки номера диария
Все шаги, связанные с проверкой, является ли номер номером Diarium или нет,:
- Считайте входное число и рассчитайте его размер
- Сделайте копию номера, чтобы проверить результат позже.
- Создайте переменную результата ( равную 0 ) и итератор ( равный размеру числа)
- Создайте цикл while, чтобы пройти через число цифра за цифрой.
- На каждой итерации результат приращения на цифру увеличивается до степени значения итератора
- Итератор декремента при каждом обходе
- Проверьте значение результата с копией исходного номера
Псевдокод для идентификации номера Диария
В приведенном ниже коде показан псевдокод для проверки того, является ли число номером Disarium:
READ n CALCULATE SIZE OF NUMBER len_n MAKE A COPY OF n result=0 CREATE AN ITERATOR i = len_n CHECK DIGIT BY DIGIT: WHILE n!=0 GET CURRENT DIGIT : digit = n % 10 UPDATE RESULT : result = result + digit^(i) TRIM THE LAST DIGIT : n = n / 10 DECREMENT i BY 1 ENDWHILE CHECK FOR DISARIUM NUMBER: IF result==COPY OF n PRINT "DISARIUM NUMBER" ELSE PRINT "NOT A DISARIUM NUMBER"
Реализация проверки номера Diarium в Python
Теперь, когда мы знаем, что такое номер Диария и шаги по его реализации, давайте реализовывать проверку Диария строка за строкой.
1. Создайте исходные переменные
Сначала мы берем вход n
и вычисляем длину числа. Мы также храним копию входных данных, чтобы независимо от того, насколько сильно мы изменим исходное число, мы также инициализировали результат как 0 и итератор с начальным значением в качестве длины числа.
Код для того же самого показан ниже:
n = input() len_n = len(n) n=int(n) copy_n=n result = 0 i = len_n
2. Прохождение по номеру и обновление результата
Чтобы получить доступ к каждой цифре, мы берем модуль числа ( mod 10), чтобы извлечь последнюю цифру числа. Следующий шаг включает в себя обновление результата как суммы предыдущего результата и цифры, поднятой до позиции цифр.
Последний и последний шаг, который мы делаем, – это делим число на 10, чтобы удалить последнюю цифру из числа. Мы также уменьшаем итератор на 1 на каждой итерации. Тот же процесс повторяется до тех пор, пока в номере не останется больше цифр.
Код для того же самого показан ниже:
while(n!=0): digit = n%10 result=result+pow(digit,i) n=int(n/10) i = i - 1
3. Проверка, является ли номер номером Diarium или нет
Последний шаг-проверить копию числа, которое мы создали ранее, и вычислить результат, чтобы окончательно определить, является ли это число номером Disarium или нет. Код для того же самого показан ниже:
if(result==copy_n): print("Disarium Number!") else: print("Not an Disarium Number!")
Выходные образцы для кода
На данный момент я протестировал программу для двух входов. Оба они показаны ниже:
Номер 1: 153
153 Not a Disarium Number!
Номер 2: 175
121 Disarium Number!
Вывод
Поздравляю! Вы успешно узнали о номере Diarium и реализовали то же самое в Python! Но не останавливайтесь на достигнутом! Продолжайте читать и учиться!
Рекомендуемое чтение: Как реализовать проверку возраста графического интерфейса в Python Tkinter?