由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 今天电面考了Happy Number, 挂了, 求指导
相关主题
2nd Amazon phone interview (1hr)ms面试问了atoi,结果搞了半天我还是搞错了
general solution for missing number(s) problem函数atoi的实现
fb二面杯具刚电面了Mathworks
贡献BB二进宫的电面面经G家新鲜电面面经,onsite求bless
问个问题 求missing number紧急求助!Google电面怎么准备?
刚phone完MS,好紧张。。。。忐忑的G电面
请问如何安全地reverse 一个integer关于atoi的overflow
用skype电面的意思,是不是要video阿?求助:求整数的位数,咋就不对了呢?
相关话题的讨论汇总
话题: number话题: happy话题: digits话题: 数字话题: 81
进入JobHunting版参与讨论
1 (共1页)
m***p
发帖数: 86
1
Happy Number 定义为 (只考虑正整数):
1是Happy number,
各个数字的平方和为happy number, 那么这个数字是happy number
例子: 13 -> 1^2+3^2 -> 10 -> 1^2+0^2 -> 1
这样13和10都是happy number
我的思路是: 如果计算出1, 返回true, 如果算出了以前出现过的数,返回false(因
为会形成一个循环,这样永远到不了1)
看网上的思路大体就是这样,可是今天面的三哥非要问:
为什么不能有第三种情况,就是一直不出现重复数字,还一直无法得到1(不断增长下去
)?
我也给不出严格证明,三哥最后给个方案,如果下一个int数字overflow的话,就返回
false
可是这完全多此一举,因为不会有这种情况的,请问如何能给出严格证明?
l******6
发帖数: 340
2
Suppose the number gets to n digits, next number is less than
9^2 * n = 81 * n
this is strictly less than the number itself, which is greater than
10^(n - 1)
when n gets greater or equal than 4
so the number will decrease after operation
no possible to overflow
laoyin doesn't know math
r******l
发帖数: 10760
3
CS的面试题不要过多地从数学角度想。毕竟出这个题是考查你coding方面的能力,而不
是你数学有多强。他的意思应该就是看你的程序能否cover各种情况而已。
我以前碰到过一个面试题让不用sqrt函数计算平方根。我说用泰勒级数来算,他不愿意
。扯了半天发现其实他想要的答案是binary search而已。
K*******g
发帖数: 26
4
考虑INT_MAX,共10位,平方和小于10*(9*9)=810。
之后的平方和都小于810,所以不会一直增长,更不可能溢出。

【在 m***p 的大作中提到】
: Happy Number 定义为 (只考虑正整数):
: 1是Happy number,
: 各个数字的平方和为happy number, 那么这个数字是happy number
: 例子: 13 -> 1^2+3^2 -> 10 -> 1^2+0^2 -> 1
: 这样13和10都是happy number
: 我的思路是: 如果计算出1, 返回true, 如果算出了以前出现过的数,返回false(因
: 为会形成一个循环,这样永远到不了1)
: 看网上的思路大体就是这样,可是今天面的三哥非要问:
: 为什么不能有第三种情况,就是一直不出现重复数字,还一直无法得到1(不断增长下去
: )?

s******d
发帖数: 424
5
可以证明啊
9*9=81
9..9 设有N个9,当N>2,总有 81*N < 10^N
所以是有限的,不可能不断增长
w*****e
发帖数: 1050
6
http://en.wikipedia.org/wiki/Happy_number
Sequence behavior 给出了证明
so any number over 1000 gets smaller under this process and in particular
becomes a number with strictly fewer digits. Once we are under 1000, the
number for which the sum of squares of digits is largest is 999, and the
result is 3 times 81, that is, 243.
f********x
发帖数: 2086
7
楼主有点背
bless
l**********a
发帖数: 181
8
laoyin does not know math
1 (共1页)
进入JobHunting版参与讨论
相关主题
求助:求整数的位数,咋就不对了呢?问个问题 求missing number
reverse an integer 怎么判断是否 overflow 来着刚phone完MS,好紧张。。。。
flickr 新鲜电面请问如何安全地reverse 一个integer
求大数加1题目的细节用skype电面的意思,是不是要video阿?
2nd Amazon phone interview (1hr)ms面试问了atoi,结果搞了半天我还是搞错了
general solution for missing number(s) problem函数atoi的实现
fb二面杯具刚电面了Mathworks
贡献BB二进宫的电面面经G家新鲜电面面经,onsite求bless
相关话题的讨论汇总
话题: number话题: happy话题: digits话题: 数字话题: 81