258.各位相加

题目链接:https://leetcode-cn.com/problems/add-digits/

一.题解思路

1.常规

双重while循环,外层的判断是否已经为个位数,里层的做各位相加,先对10取余再除以10,直到所有位置上的数字都加完。

2.数学

比如说对三位数 abc = 100a+10b+c 而言,它各位相加会得到 a+b+c,也就是说相加的过程其实是abc - (a+b+c) = 99a+9b,即 a+b+c = abc - (99a+9b) = abc - 9×(11a+b)。因此,每一次相加其实是对 abc ,或者说对我们的num做了%9的操作。

而如果num恰好能被9整除,返回的则是9。

二.心得

没想到数学的方法,也许还是太浮躁,缺少了思考的过程。共勉。

上一篇:java学习笔记05——可变参数


下一篇:L1-049 天梯赛座位分配 (20 分)