除数是58余数是0余数上面数的数是406求被除数的公式有余数

codewar上面的一道题目:
给任意一个自嘫数将各位上的数字加起来,如果得到一个大于一位数的结果则再计算,知道得到一个一位数那么这个一位数就是这个数的树根。利用代码求一个自然数的树根

以上是最起码的解法,但是这里面还有一个最优的解法涉及到了九余数原理(如下):
(1)两个或多个數的加减乘除得到的结果的数根,等于对应各个数的数根的加减乘除的结果的树根
(2)一个数的数根(特殊情况,如果数根为9按0算)等于该数对9取余的结果。
具体的证明可以用一个等式:
上面的等式可以看出任意一个数的树根等于对9的余数。
那么上面的代码就可以简囮如下:

就是直接返回对9的余数就行了但是要具体处理下99,999等情况所有利用and函数进行返回。

我要回帖

更多关于 求被除数的公式有余数 的文章

 

随机推荐