华为机试题 [10] -求数字基 root - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fengsehng
V2EX    问与答

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

  •  1
     
  •   fengsehng 2016-07-09 20:24:07 +08:00 2719 次点击
    这是一个创建于 3384 天前的主题,其中的信息可能已经有所发展或是发生改变。

    题目描述:

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

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

    这里写图片描述

    第 1 条附言    2016-07-09 22:21:25 +08:00
    这个题目看错了,程序最后的判断是小于 10
    第 2 条附言    2016-07-09 22:24:12 +08:00
    不对,程序是对的,不用改
    15 条回复    2016-07-10 16:46:21 +08:00
    just4test
        1
    just4test  
       2016-07-09 20:45:17 +08:00
    还以为有什么先进的玩意,结果根本没有。
    just4test
        2
    just4test  
       2016-07-09 20:45:32 +08:00
    还有那个 num 的变量声明了也没用到啊
    wzxjohn
        3
    wzxjohn  
       2016-07-09 20:55:16 +08:00 via iPhone
    兄弟,先去吧 Leet Code Easy 做完再去面试吧。。。
    这题是 O(1) 的。
    wzxjohn
        4
    wzxjohn  
       2016-07-09 20:57:57 +08:00 via iPhone
    哦, n 个数,那是 O(n)
    SourceMan
        5
    SourceMan  
       2016-07-09 21:18:10 +08:00 via iPhone
    @wzxjohn 人家只是为了推广而已啦,管啥 O(n)
    leewangyang
        6
    leewangyang  
       2016-07-09 21:23:56 +08:00 via Android
    楼上说的对。。。对每个数是 o(1)的,模 9 为 0 就是 9 ,非 0 就是余数
    wzxjohn
        7
    wzxjohn  
       2016-07-09 21:46:10 +08:00
    @SourceMan 唉。。。你说这分享的要是对的也就罢了,还分享错的。。。简直了。。。
    fengsehng
        8
    fengsehng  
    OP
       2016-07-09 22:18:05 +08:00
    这个题,看错题目了,小于 10 ,看成小于等于 10 了,最后一步判断<10
    wodesuck
        9
    wodesuck  
       2016-07-10 00:14:23 +08:00
    @wzxjohn +1 ,分享错的就很尴尬了……错的还是这种小学生数学……
    9hills
        10
    9hills  
       2016-07-10 10:09:09 +08:00 via Android
    你这个假如题目有 10 分,只能得四五分吧,就不是正确答案属于酌情给分范围…
    fengsehng
        11
    fengsehng  
    OP
       2016-07-10 10:31:23 +08:00
    @9hills 这个是机试通过了,我到现在没有找到错误,帮我指出呗,这个题不要求时间和空间效率
    loading
        12
    loading  
       2016-07-10 11:11:29 +08:00 via Android
    有这样推广的?
    block
    hxtheone
        13
    hxtheone  
       2016-07-10 11:22:16 +08:00
    分享代码是好的, 但是起码把代码弄好看点吧(缩进, 无用变量), 而且这种 leetcode easy 难度都不如的题有分享的意义吗?
    9hills
        14
    9hills  
       2016-07-10 11:50:51 +08:00 via iPad
    @fengsehng 算法题能跑对就完了?出个排序题你给个 O(N2)的解决办法也是 ok 的?

    出题到底是考察什么?先想清楚这些事情再去教别人做算法题
    43588
        15
    43588  
       2016-07-10 16:46:21 +08:00
    8 + 6 + 5 = 19

    1 + 9 = 0

    为啥答案是 1 ?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     983 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 22:27 PVG 06:27 LAX 15:27 JFK 18:27
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86