Add Digits

package cn.edu.xidian.sselab;

import java.util.ArrayList;
/**
 * title:Add Digits
 * contents:
 *  Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.
 *  For example:
 *  Given num = 38, the process is like: 3 + 8 = 11, 1 + 1 = 2. Since 2 has only one digit, return it.
 *  Follow up:
 *  Could you do it without any loop/recursion in O(1) runtime?
 */
public class AddDigits {

    /**
     * @author wzy
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        AddDigits ad = new AddDigits();
        int result1 = ad.addDigits(59);
        int result2 = ad.addDigitAnotherWay(59);
        System.out.println(result1 + " " + result1);
    }
    //没有看清题目,不允许使用循环与递归,时间复杂度为O(1),错误的解法
    //而且这个地方也不用这么麻烦,用取余操作就可以求和
    public int addDigit(int num){        
        while(num >=10){
            String strNum = String.valueOf(num);
            int length = strNum.length();
            int result = 0;
            for(int i=0;i<length;i++){
                result += Integer.valueOf(strNum.charAt(i) - 48);
            }
            num = result;
        }        
        return num;
    }
    
    //这也是一种求各位数之后的方法
    public int addDigitAnotherWay(int num){
        while(num >= 10){
            num = (num / 10) + num % 10;
        }
        return num;
    }
    //分析得出来的规律,自己没有的出来,从网上得到的思路,看到了公式result = (num -1) % 9 + 1,也可以是其他公式
    public int addDigits(int num){        
        int result = 0;
        result = (num -1) % 9 + 1;
        return result;
    }

}

posted on   wzyxidian  阅读(279)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
· 现代计算机视觉入门之:什么是视频
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· .NET Core GC压缩(compact_phase)底层原理浅谈
· Winform-耗时操作导致界面渲染滞后
· Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能
· 深度学习基础理论————CV中常用Backbone(Resnet/Unet/Vit系列/多模态系列等
< 2025年1月 >
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示