前言
刷题专栏到目前已经是第十五篇了,欢迎大家来关注我的刷题专栏,一起来刷题。
今天的这道题终于不再是二叉树的题目了。
开始数字相关的题目了,《各位相加》这道题,主要就是考察逻辑方面的能力。
如果你对逻辑的题目感兴趣,或许可以从这道题找到有意思的地方。
一起来看看吧。
算法题:翻转二叉树
从题目的描述上来看,只是提供了一个正整数。
然后将这个正整数每一位上的数字进行相加,然后得到一个中间值。
然后如果这个中间值不是个位数的话,那么就接着将每一位上的数字进行相加。
直到得到的值是一个个位数时,就将这个数字返回。
在示例中,我们也可以看的出来。
从38,相加后得到一个中间值11。
然后再次进行各位相加,最后得到值2。
代码展示
下面就是这次的代码展示了,主要就是通过数字取余的方式来判定是否继续相加。
逻辑比较简单,只要懂得如何取余,如何将所有的值得到就能完成这道题的解答。
public class Solution { public static void main(String[] args) { Solution solution = new Solution(); System.out.println(solution.addDigits(38)); } public int addDigits(int num) { while (num >= 10) { int s = 0; while (num > 0) { s += num % 10; num /= 10; } num = s; } return num; } }
代码执行结果
今天执行的结果很可以,一如既往还是内存占用比较多,大家如果有更好的方案可以评论区讨论一下哈。
总结
今天的这道题,重在逻辑实现,只要将思绪理清,代码实现不在话下的,加油各位,胜利就在前方。