华为机试题【10】-求数字基root
来源:互联网 发布:cf免费卡枪带软件 编辑:程序博客网 时间:2024/06/04 22: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面试题汇总》微信订阅号。每天推送经典面试题和面试心得技巧,都是干货!
微信订阅号二维码如下:
2 1
- 华为机试题【10】-求数字基root
- [华为机试练习题]32.数字基root
- 华为机试题:求车速
- 2014华为机试题11:截取数字
- 华为机试题--9.数字颠倒
- 华为机试题--求最大凸多边形
- 华为上机试题:数字问题.
- 华为机试—数字逆序且求个位数乘积
- 华为机试—数字逆序且求个位数乘积
- 华为机试题:解析9进制、11进制字符串为10进制数字
- 字符串中的数字相加(华为机试题)
- 2014华为机试题12:求最大递增数
- (java)华为机试题:大数求差
- 求最高分(华为简单面试题)
- 2014华为机试题14:解析9进制,11进制的字符串为10进制的数字输出
- 华为西安2015实习生机试题基础题--------求输入的五个数字中频率最高的,输出数字和次数
- 华为机试题
- 2011 华为机试题
- Javascript面向对象编程(二):构造函数的继承
- BAT实习内推笔试卷(第一场)
- hdu 5083 Instruction(模拟)
- 第1章 对象导论
- Javascript面向对象编程(三):非构造函数的继承
- 华为机试题【10】-求数字基root
- 第2章 一切都是对象
- Log4j的学习--Log4j 配置文件
- SGU 495 Kids and Prizes
- 【一天一道LeetCode】#160. Intersection of Two Linked Lists
- 使用SpEL表达式装配Bean
- OpenGL学习笔记5:着色器
- POJ 2182 Lost Cows
- 向量夹角顺时针或逆时针,交叉口向左拐向右拐的问题