zoukankan      html  css  js  c++  java
  • [LintCode]各位相加

    描述:

    给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。

    给出 num = 38。

    相加的过程如下:3 + 8 = 111 + 1 = 2。因为 2 只剩下一个数字,所以返回 2

    分析:

    这道题并不难,只能说用好递归吧。

    方法一:

    public int addDigits(int num) {
            // write your code here
            if(num / 10 == 0){
                return num;
            }else{
                return addDigits(sum(num));
            }
        }
        
        public int sum(int num){
            if(num == 0){
                return 0;
            }else{
                return num % 10 + sum(num / 10);
            }
        }

    方法二:

    public int addDigits2(int num) {
            // write your code here
            String numStr = num + "";
            if (numStr.length() > 1) {
                int sum = 0;
                for (int i = 0; i < numStr.length(); i++) {
                    sum += Integer.parseInt(numStr.charAt(i) + "");
                    num = sum;
                }
                return addDigits2(num);
            }
            return num;
        }
  • 相关阅读:
    HTML中Css补充资料
    HTML表单
    HTML盒子模型
    标准文档流
    什么使用面向对象
    static修饰
    static修饰
    列表样式
    java基础(9)
    java基础(8)
  • 原文地址:https://www.cnblogs.com/DarrenChan/p/8776791.html
Copyright © 2011-2022 走看看