双重while循环,外层的判断是否已经为个位数,里层的做各位相加,先对10取余再除以10,直到所有位置上的数字都加完.
比如说对三位数 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.
没想到数学的方法,也许还是太浮躁,缺少了思考的过程.共勉.