一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
码农求职神器Triplebyte:
不用海投,内推多家公司面试
Airbnb 数据科学职位
in analytics and inference
游戏初创公司
招聘工程师、Designer和游戏策划
游戏初创公司DreamCraft招聘工程师、UIUX Designer和游戏策划
把贵司招聘信息放这里
查看: 1959|回复: 1
收起左侧

epic oa题additive number

[复制链接] |试试Instant~ |关注本帖
byrlhb 发表于 2014-11-22 13:51:27 | 显示全部楼层 |阅读模式

2014(10-12月) 码农类 本科 全职@epic - 网上海投 - 在线笔试 |Fail

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
epic OA挂掉了,准备得不太充分,coding题中有一道additive number比较有意思,又做了一遍,把方法post在这里,希望能帮助大家~攒人品!如果觉得有帮助,不要吝啬大米啊!不知道题的请戳这里http://careercup.appspot.com/question?id=17075662
        public void generateAdditiveNumber(int low, int high). 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
        {
                int digitHigh = (int) (Math.log10(high)) + 1;. 鍥磋鎴戜滑@1point 3 acres
                int digitLow = (int) (Math.log10(low)) + 1;
                for(int i = 3; i <= digitHigh; i++) 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
                {
                        int firstStart = (int)Math.pow(10, digitLow / i - 1);
                        if(firstStart == 0)
                        {
                                firstStart = 1;. visit 1point3acres.com for more.
                        }
. 鍥磋鎴戜滑@1point 3 acres                        int firstEnd = (int)Math.pow(10, digitHigh / i);
                        for(int first = firstStart; first < firstEnd; first++)
                        {
                                int digitNum = (int) (Math.log10(first)) + 1;
. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴                                for(int second = 0; second < (int) Math.pow(10, digitNum); second++)
                                {
                                        int previous = first;. From 1point 3acres bbs
                                        int present = second;
                                        StringBuffer value = new StringBuffer();
                                        value.append(String.valueOf(first * (int)Math.pow(10, digitNum) + second));
                                        for(int j = 3; j <= i; j++)
                                        {
                                                int number = present + previous;
                                                value.append(String.valueOf(number));
                                                previous = present;
                                                present = number;
                                        }
                                        String result = value.toString();
                                        if(result.length() <= digitHigh && Long.valueOf(result) >= (long)low && Long.valueOf(result) <= (long)high)
                                        {
                                                System.out.println(result);
                                        }               
                                }
                        }                       
                }                . visit 1point3acres.com for more.
        }






补充内容 (2014-11-24 01:09):
此题还有考虑不周全的地方,因为无法删帖,请直接忽视,谢谢

评分

1

查看全部评分

sophiehu 发表于 2016-2-20 11:34:22 | 显示全部楼层
鼓掌,发现了一个好的网站
回复 支持 反对

使用道具 举报

本版积分规则

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-1-17 19:39

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表