📜  检查数字是否为魔术(数字的递归总和为1)

📅  最后修改于: 2021-04-24 20:54:12             🧑  作者: Mango

如果数字的总和是通过在每次加法之后将数字的总和相加而递归地计算到单个数字,则该数字被称为魔术数字。如果一位数字为1,则该数字为幻数。
例如-
数= 50113
=> 5 + 0 + 1 + 1 + 3 = 10
=> 1 + 0 = 1
这是一个魔术数字
例如-
数= 1234
=> 1 + 2 + 3 + 4 = 10
=> 1 + 0 = 1
这是一个魔术数字

例子 :

Input : 1234
Output : Magic Number

Input  : 12345
Output : Not a magic Number

该方法使用蛮力。该函数会不断增加数字,直到达到一个数字总和。要了解我如何计算最多一位数字的总和,请查看此页面-查找数字的总和,直到总和变成一位数字

C++


Java


Python3


C#


PHP


C


C++


Java


Python


输出:
Magic Number

输出 :

Magic Number

高效方法(快捷方式):还有一种验证幻数的快捷方法。函数将确定将输入除以9的余数是否为1。如果为1,则数字为幻数。 9的除数规则表示,如果一个数字的总和也可以被9整除,那么该数字可以被9整除。因此,如果一个数字也可以被9整除,则递归地,所有数字总和也可以被9整除。最终数字总和始终为9。原始数字增加1将使最终值增加1,使其为10,最终总和为1,从而验证其为魔术数字。

C

输出:
Magic Number

C++

输出:
Magic Number

Java

输出:
Magic Number

Python

输出:
Magic Number