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。