LintCode之各位相加

题目描述:

我的代码

 1 public class Solution {
 2     /*
 3      * @param num: a non-negative integer
 4      * @return: one digit
 5      */
 6     public int addDigits(int num) {
 7         // write your code here
 8         int[] n = new int[10];
 9         int f = -1,sum=0;
10         //当num是个位数的时候退出循环
11         while(num/10 != 0) {
12             //循环取得num的各位数
13             while(num != 0) {
14                 n[++f] = num%10;
15                 num /= 10;
16             }
17             //数组出栈获得各位数之和
18             while(f > -1) {
19                 sum = sum + n[f--];
20             }
21             num = sum;
22             sum = 0;
23         }
24         
25         return num;
26     }
27 }

总结:这道题是LintCode中的一道容易题,我用了一个栈的思想,把每次取得的num的各位数依次入栈,在依次出栈获得总和,把总和的值赋给num,当num为个位数时退出循环返回num。

 

posted @ 2017-10-25 21:01  zwt3  阅读(185)  评论(0编辑  收藏  举报