华为机试题【10】-求数字基root

原创 2016年07月09日 20:24:30

题目描述:

求整数的Root:给定正整数,求每位数字之和;如果和不是一位数,则重复;
输入:输入任意一个或多个整数
输出:输出各位数字之和,直到和为个位数为止(输入异常,则返回-1),多行,每行对应一个输入数据的结果。

样例输入:

25
865

样例输出:

7
1

思路分析:

  • 首先求个位数相加,经典方法,求余相除
  • 要求各个位数的和是小于10,可以采用递归或者循环

代码:

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;
    }
}

我的微信二维码如下,欢迎交流讨论

这里写图片描述

欢迎关注《IT面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!

微信订阅号二维码如下:

这里写图片描述

版权声明:本文为博主原创文章,未经博主允许不得转载。

2017华为实习机试题(java)

题目1:    编写一个reverseadd函数,实现两个数倒置后再求和的功能,比如输入123,456就是求321+654,输出975    注意输入100,200输出3,(自动去除开头的0),超过范...
  • fengsigaoju
  • fengsigaoju
  • 2017年03月25日 10:07
  • 1912

2015届华为校园招聘机试题

第一题(60分):        按要求分解字符串,输入两个数M,N;M代表输入的M串字符串,N代表输出的每串字符串的位数,不够补0。例如:输入2,8, “abc” ,“123456789”,则输出为...
  • Hackbuteer1
  • Hackbuteer1
  • 2014年09月13日 18:25
  • 55909

华为Java机试题

1.程序实现目标: 输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。     程序要求:该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符。 packag...
  • xcbeyond
  • xcbeyond
  • 2015年05月10日 22:55
  • 21246

华为校招JAVA机试题

又到校园招聘的时候了,前几天听同学说华为校招还要考上机,然后就在网上找往年的机试题,找到之后就开始战斗了。。下面的题目都是在网上找的,然后代码是自己一个一个写的。。。 1.程序实现目标: 输入一个字...
  • TaoTaoFu
  • TaoTaoFu
  • 2017年01月09日 22:17
  • 1705

华为2016实习机试题

在牛客网上做的。 老师想知道从某某同学当中,分数最高的是多少,现在请你编程模拟老师的询问。当然,老师有时候需要更新某位同学的成绩.  输入描述: 输入包括多组测试数据。 每组输入第一行是两个正整数...
  • hyp1977
  • hyp1977
  • 2016年07月17日 21:46
  • 487

华为机试-麻将胡牌

华为机试-麻将胡牌
  • xiong452980729
  • xiong452980729
  • 2017年03月14日 12:23
  • 763

[华为机试练习题]44.24点游戏算法

问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利 输入: 4个1-10的数字。[数字允许重复,测试用例保证无异常数字] 输出: True or False...
  • SunnyYoona
  • SunnyYoona
  • 2015年07月03日 22:27
  • 1948

2016年华为机试题

这题其实超级简单,可能是由于第一次参加机试,有点紧张,也没有什么经验,看到题干太长就没有耐心看下去。导致这题没做出来,现在整理的时候,其实挺简单的。 在二进制位图数据中,通常1是稀疏的。在位图压缩的算...
  • smallfish_love
  • smallfish_love
  • 2016年08月24日 10:55
  • 2006

华为OJ题目:24点运算

描述: 计算24点是一种扑克牌益智游戏,随机抽出4张扑克牌,通过加(+),减(-),乘(*), 除(/)四种运算法则计算得到整数24,本问题中,扑克牌通过如下字符或者字符串表示,其中,小写joke...
  • lylyyg
  • lylyyg
  • 2015年08月14日 20:53
  • 2272

[华为机试练习题]37.合唱队

N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形。 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2…,K,他们的身高分别为T1,T2,…,T...
  • SunnyYoona
  • SunnyYoona
  • 2015年07月02日 15:57
  • 2723
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:华为机试题【10】-求数字基root
举报原因:
原因补充:

(最多只允许输入30个字)