[八我司] 介绍一下Uber tech stack和各个大组的情况

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
把贵司招聘信息放这里
查看: 4187|回复: 9
收起左侧

[编程题] 一道Codility上的面试题

[复制链接] |试试Instant~ |关注本帖
zenw 发表于 2014-12-21 01:24:17 | 显示全部楼层 |阅读模式

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

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

x

A positive integer N is given. Write a function:
           function solution(N);
that returns the sum of the values of the digits in a decimal representation of N! (fractorial of N).
For example, give N = 14, the function should return 45, because N! = 87178291200 and the sum of the values of its digits equals:
8+7+1+7+8+2+9+1+2+0+0 = 45
The function should return -1 if the result exceeds 100,000,000.
Assume that:
  • N is an integer within the range [1...2,000]


Complexity:
  • expected worst-case time complexity is O(N^2)
  • expected worst-case space complexity is O(N)

nemoczech 发表于 2014-12-22 01:10:21 | 显示全部楼层
LZ能不能share下这题的题目名称是什么?谢谢了~
回复 支持 反对

使用道具 举报

全球28万学生4.7分推荐
 楼主| zenw 发表于 2014-12-22 01:11:46 | 显示全部楼层
nemoczech 发表于 2014-12-22 01:10
LZ能不能share下这题的题目名称是什么?谢谢了~

不知道叫什么啊 online 做的 不是demo题 没有名字的
回复 支持 反对

使用道具 举报

readman 发表于 2014-12-22 15:35:24 | 显示全部楼层
- = 我第一个想到的是斯特灵公式, 然后感觉那么复杂不会出..然后就不知道了
回复 支持 反对

使用道具 举报

readman 发表于 2014-12-22 15:39:08 | 显示全部楼层
- = 确实想不到不算出来n!就解决此题的方法...要是让算出来能有好多办法..
回复 支持 反对

使用道具 举报

 楼主| zenw 发表于 2014-12-23 08:23:54 | 显示全部楼层
readman 发表于 2014-12-22 15:39
- = 确实想不到不算出来n!就解决此题的方法...要是让算出来能有好多办法..

算出来肯定overflow了
回复 支持 反对

使用道具 举报

nemoczech 发表于 2014-12-24 01:42:27 | 显示全部楼层
有没有想出什么好的解法?我在网上搜了一圈似乎也没有什么满意的答案...顺便问问LZ做的是哪家公司的OA啊?
回复 支持 反对

使用道具 举报

xutopia 发表于 2014-12-24 02:49:26 | 显示全部楼层
本帖最后由 xutopia 于 2014-12-24 03:00 编辑

Assuming the space complexity asked is O(N) word complexity (i.e. O(N) 32-bit integers or something), and arithmetic of words is O(1) time.

1. Precompute everything, hardcode them in a table, do a table look up. O(1) time, if 100,000,000 fits in one word this is O(N) space.

2. Use linked list to implement large number multiplication in a big enough base, say base N. As N!<N^N, which in base-N representation only needs N numbers, so space complexity is O(N) words. Computing N! is O(N^2) time (actually no, see edit note below), once you have N! in base-N, computing the digits in base-10 should be easy.

Edit: In the 2nd approach computing N! in base N should be O(N^2 log N) using FFT, not sure how to get it down to O(N^2) for now, maybe do (N / log N) based arithmetic instead.
回复 支持 反对

使用道具 举报

 楼主| zenw 发表于 2014-12-24 05:07:30 | 显示全部楼层
xutopia 发表于 2014-12-24 02:49
Assuming the space complexity asked is O(N) word complexity (i.e. O(N) 32-bit integers or something) ...

大神 你认识徐硕 长起么? 我好像知道你
回复 支持 反对

使用道具 举报

lijie 发表于 2015-3-10 08:53:18 | 显示全部楼层
题目的名字是:FactorialDigitsSum
回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

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

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

custom counter

GMT+8, 2018-5-25 20:47

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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