华为机试题【10】-求数字基root
生活随笔
收集整理的這篇文章主要介紹了
华为机试题【10】-求数字基root
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述:
求整數(shù)的Root:給定正整數(shù),求每位數(shù)字之和;如果和不是一位數(shù),則重復(fù);
輸入:輸入任意一個(gè)或多個(gè)整數(shù)
輸出:輸出各位數(shù)字之和,直到和為個(gè)位數(shù)為止(輸入異常,則返回-1),多行,每行對(duì)應(yīng)一個(gè)輸入數(shù)據(jù)的結(jié)果。
樣例輸入:
25
865
樣例輸出:
7
1
思路分析:
- 首先求個(gè)位數(shù)相加,經(jīng)典方法,求余相除
- 要求各個(gè)位數(shù)的和是小于10,可以采用遞歸或者循環(huán)
代碼:
import java.util.Scanner;public class Main {static int[] num = {1,2,5,10,20,50,100};public static void main(String[] args) {Scanner scan = new Scanner(System.in);while(scan.hasNext()){int input = scan.nextInt();if(input < 1){System.out.println(-1);}else{System.out.println(getRoot(input));}} }public static int getRoot(int n){int all = 0;int a = 0;while(n > 0){a = n % 10;n = n / 10;all = all +a;}if(all >= 10){return getRoot(all);}return all;} }我的微信二維碼如下,歡迎交流討論
歡迎關(guān)注《IT面試題匯總》微信訂閱號(hào)。每天推送經(jīng)典面試題和面試心得技巧,都是干貨!
微信訂閱號(hào)二維碼如下:
<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>轉(zhuǎn)載于:https://www.cnblogs.com/fengsehng/p/6048702.html
總結(jié)
以上是生活随笔為你收集整理的华为机试题【10】-求数字基root的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 台北到淡水版Firefox无法播放视频
- 下一篇: JDBC连接mysql数据库操作