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

Posted 一行代码的事

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。相关的知识,希望对你有一定的参考价值。

 1 package digitAddTogither;
 2 
 3 /**
 4  * Created by ZKY on 2017-08-15 01:00.
 5  * 给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。
 6  * 样例
 7  * 给出 num = 38。
 8  * 相加的过程如下:3 + 8 = 11,
 9  * 1 + 1 = 2。
10  * 因为 2 只剩下一个数字,所以返回 2。
11  */
12 public class DoMain
13 {
14     /**
15      * Get a number‘s all digit‘s sum.
16      * @param num
17      * @return
18      */
19     public int geSum(int num)
20     {
21         int sum = 0;
22         while(num >0)
23         {
24             int temp = num %10;
25             num /= 10;
26             sum+=temp;
27         }
28          return sum;
29     }
30 
31     /**
32      * 获取一个数的各位和,并判断和是否满足个位数,满足就返回结果。否者继续。
33      * @param num
34      * @return
35      */
36     public int getAdigit(int num)
37     {
38         while(num >=10)
39         {
40             num = geSum(num);
41         }
42          return num;
43     }
44 
45 
46 
47     public static void main(String[] args)
48     {
49         DoMain doMain = new DoMain();
50         int adigit = doMain.getAdigit(38);
51         System.out.println(doMain.getAdigit(45));
52         System.out.println(doMain.getAdigit(23));
53         System.out.println(doMain.getAdigit(69));
54         System.out.println(doMain.getAdigit(123));
55         System.out.println(doMain.getAdigit(6623));
56     }
57 }

一开始想到的是递归,但是想了半天写出来的程序返回并不正确。

换一种思路就很快写出了这个。

 

以上是关于给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Python笔试题:给定一个非负整数num,反复将各个位上的数字相加,直到结果为一位数杭州多测师杭州多测师_王sir

Python中输入一个正整数,统计该数各位数字之和,例如shrubs的正整数是89076?

LeetCode——258. 各位相加(Java)

leetcode 258. 各位相加 (python)