华为机试题【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面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!

微信订阅号二维码如下:

这里写图片描述

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

相关文章推荐

华为2011年软件岗位校园招聘机试题---联系人姓名在手机上的数字匹配

联系人姓名在手机上的数字匹配 问题描述: 针对每个联系人,比如John Smith,我们可以通过如下两种方式进行匹配: 1、 首几个连续字母。以上面的例子来说明:J(5)o(6)h(4); 2...

华为机试题---统计一个数字转为二进制0和1的个数

一、问题描述 功能描述:统计一个数字转为二进制后,0和1的个数,组成数组返回 输入:6 输出:{1,2} 二、算法分析    要把一个数字转为二进制就得为这个数字不断取余数 ,如果能整除则为...

华为机试题--识别字符串中的整数并转换为数字形式

题目地址:http://www.cnblogs.com/Trony/archive/2012/10/01/2709959.html

华为机试题----数组中找满足 2^n的数字

一、问题描述  功能描述:找出一个int[]中满足 2^n的数字,然后组成的新的数组 输入:{4,3,8} 输出:{4,8} 二、算法描述 /** * Finds the number ma...

华为2014年机试题1 (输入1--50个数字,求出最小数和最大数的和 )

http://blog.csdn.net/xuzhilong2009/article/details/11751001 //华为2014年机试题1:输入1--50个数字,求出最小数和最大...

华为mediapad 10专用root工具

  • 2013年02月19日 21:27
  • 2.22MB
  • 下载

2014华为编程大赛-解析9进制,11进制的字符串为10进制的数字输出

代码完全原创,如有纰漏,敬请指正:
  • wl_nj
  • wl_nj
  • 2014年05月05日 21:57
  • 669

求一个int型整数的两种递减数之和(java)--2015华为机试题

描述:        给出一个整数(负数使用其绝对值),输出这个整数中的两种递减数(1.最大递减数;2.递减数中各位数之和最大的数)之和。 递减数:一个数字的递减数是指相邻的数位从大到小排列的数字,不...

华为机试题--求最大凸多边形

/**  求最大凸多边形 给定一些点,输出最大面积的凸边形。输出起始点为x轴最左边的点,按照顺时针方向输出,每个点必须是凸边形的顶点(不输出边上或凸边形内的点)。 输入样例:  13;-3,-3;1,...
  • tang319
  • tang319
  • 2016年09月27日 16:40
  • 437
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:华为机试题【10】-求数字基root
举报原因:
原因补充:

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