华为机试题 [10] -求数字基 root

2016 年 7 月 9 日
 fengsehng

题目描述:

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

样例输入:

25 865

样例输出:

7 1

思路分析:

代码:

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

微信订阅号二维码如下:##

3180 次点击
所在节点    问与答
15 条回复
just4test
2016 年 7 月 9 日
还以为有什么先进的玩意,结果根本没有。
just4test
2016 年 7 月 9 日
还有那个 num 的变量声明了也没用到啊
wzxjohn
2016 年 7 月 9 日
兄弟,先去吧 Leet Code Easy 做完再去面试吧。。。
这题是 O(1) 的。
wzxjohn
2016 年 7 月 9 日
哦, n 个数,那是 O(n)
SourceMan
2016 年 7 月 9 日
@wzxjohn 人家只是为了推广而已啦,管啥 O(n)
leewangyang
2016 年 7 月 9 日
楼上说的对。。。对每个数是 o(1)的,模 9 为 0 就是 9 ,非 0 就是余数
wzxjohn
2016 年 7 月 9 日
@SourceMan 唉。。。你说这分享的要是对的也就罢了,还分享错的。。。简直了。。。
fengsehng
2016 年 7 月 9 日
这个题,看错题目了,小于 10 ,看成小于等于 10 了,最后一步判断<10
wodesuck
2016 年 7 月 10 日
@wzxjohn +1 ,分享错的就很尴尬了……错的还是这种小学生数学……
9hills
2016 年 7 月 10 日
你这个假如题目有 10 分,只能得四五分吧,就不是正确答案属于酌情给分范围…
fengsehng
2016 年 7 月 10 日
@9hills 这个是机试通过了,我到现在没有找到错误,帮我指出呗,这个题不要求时间和空间效率
loading
2016 年 7 月 10 日
有这样推广的?
block
hxtheone
2016 年 7 月 10 日
分享代码是好的, 但是起码把代码弄好看点吧(缩进, 无用变量), 而且这种 leetcode easy 难度都不如的题有分享的意义吗?
9hills
2016 年 7 月 10 日
@fengsehng 算法题能跑对就完了?出个排序题你给个 O(N2)的解决办法也是 ok 的?

出题到底是考察什么?先想清楚这些事情再去教别人做算法题
43588
2016 年 7 月 10 日
8 + 6 + 5 = 19

1 + 9 = 0

为啥答案是 1 ?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.xtra.eu.org/t/291399

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX