zoukankan      html  css  js  c++  java
  • 领扣(LeetCode)各位相加 个人题解

    给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。

    示例:

    输入: 38
    输出: 2 
    解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。
    

    进阶:
    你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?

    将非负整数视为字符串,做法就比较简单了,循环解决了问题。

    进阶的做法完全属于数学范畴,不符合练习本题的意义,请百度相关题解。

    代码如下:

     1 class Solution {
     2     public int addDigits(int num) {
     3         int fin=num;
     4         while(fin>9)
     5         {
     6             char[] tmp=Integer.toString(fin).toCharArray();
     7             int save=0;
     8             for (char c : tmp) {
     9                 save+=(int)(c-'0');
    10             }
    11             fin=save;
    12         }
    13         return fin;
    14     }
    15 }
  • 相关阅读:
    顾问和注解
    正则
    GitHub 的简单使用
    JavaScript变态题目
    常用的Javascript设计模式
    HTML5 本地裁剪上传图片
    webpack 打包
    详解js闭包
    常用的Javascript设计模式
    call appiy
  • 原文地址:https://www.cnblogs.com/axiangcoding/p/10091761.html
Copyright © 2011-2022 走看看