论坛首页 招聘求职论坛

google的一道面试题。

浏览 40312 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-04-16  
还有我是全算完才60ms
不是只算一个用了60ms
楼主要说算到1111111110用了0ms有过其实吧。
0 请登录后投票
   发表时间:2007-04-17  
mjy304122 写道
还有我是全算完才60ms
不是只算一个用了60ms
楼主要说算到1111111110用了0ms有过其实吧。


那个 C 程序就摆在那里,你好歹弄下来编译运行尝试一下再说好吧?
0 请登录后投票
   发表时间:2007-04-17  
我就不再卖关子了。。。。。。。
既然,很多人都还停留在追求所谓速度上。。。。
对于2进制
f(1)=1,f(10)=10   就再没有符合了
3进制
f(1)=1,f(11)=11,f(12)=12,f(110)=110
4进制
符合的有
1,121,122,123,130,200,201,1110
。。。。。。。
。。。。。。。
十进制最后的就是f(1111111110)=1111111110

还有以下是求f(n)的方法count(n)是直接算的。。。
对任何进制可用,2进制的话q=q*2,当然除也是除十。。。
绝对比以上的求f(n)的方法快,当然还可以再加工一下
还有最主要的如何提高遍历的速度,就是楼主说的剪枝(我人为我的方法也不能称为剪枝)
我用了很简单的思想以后再说。。。。。
当然,为什么1111111110是最大,这是函数变化率的问题,大家朝这个方向想想就明白了。

time=0;
q=1;
public int count(int n){
clear();
num=n;
tem1=n;
temp(n);
while(tem1!=0){
q=q*10;
temp(tem1);
}


//System.out.print(time);
//System.out.println();
//System.out.println();
return time;
}
private void temp(int n){
int a=n/10;
int b=n%10;
tem1=a;

time=time+a*q;
if(b>1)
time=time+q;
else if(b==1)
time=time+num%q+b;

}


0 请登录后投票
   发表时间:2007-04-22  
mjy304122 写道
我还没有说我的思路。。。。
我只是说上面众多讨论中我觉得f(9),f(99)..
这种思路还算快,但是我还是觉得他慢。。。
剪枝,我觉得还要看怎剪,不相信我先给结果。。。
程序以后再给。。。

结果。。后面还有1111111110 和10000000000由于溢出所以没算。。

1,0ms used!

199981,0ms used!

199982,0ms used!

199983,0ms used!

199984,0ms used!

199985,0ms used!

199986,0ms used!

199987,0ms used!

199988,0ms used!

199989,0ms used!

199990,0ms used!

200000,0ms used!

200001,0ms used!

1599981,16ms used!

1599982,16ms used!

1599983,16ms used!

1599984,16ms used!

1599985,16ms used!

1599986,16ms used!

1599987,16ms used!

1599988,16ms used!

1599989,16ms used!

1599990,16ms used!

2600000,16ms used!

2600001,16ms used!

35000000,16ms used!

35000001,16ms used!

35199981,31ms used!

35199982,47ms used!

35199983,47ms used!

35199984,47ms used!

35199985,47ms used!

35199986,47ms used!

35199987,47ms used!

35199988,47ms used!

35199989,47ms used!

35199990,47ms used!

35200000,47ms used!

35200001,47ms used!

500000000,47ms used!

500000001,47ms used!

500199981,47ms used!

500199982,47ms used!

500199983,47ms used!

500199984,47ms used!

500199985,47ms used!

500199986,47ms used!

500199987,47ms used!

500199988,62ms used!

500199989,62ms used!

500199990,62ms used!

500200000,62ms used!

500200001,62ms used!

501599981,62ms used!

501599982,62ms used!

501599983,62ms used!

501599984,62ms used!

501599985,62ms used!

501599986,62ms used!

501599987,62ms used!

501599988,62ms used!

501599989,62ms used!

501599990,62ms used!

502600000,62ms used!

502600001,62ms used!

535000000,62ms used!

535000001,62ms used!

535199981,62ms used!

535199982,62ms used!

535199983,62ms used!

535199984,62ms used!

535199985,62ms used!

535199986,62ms used!

535199987,62ms used!

535199988,62ms used!

535199989,62ms used!

535199990,62ms used!

535200000,62ms used!

535200001,62ms used!



怎么没有f(13199998) = 13199998 ?
复制粘贴的时候弄错了?还是算法问题?


我机器上没有c,用java做了个,结果如下:
1,0ms
199981,0ms
199982,0ms
199983,0ms
199984,0ms
199985,0ms
199986,0ms
199987,0ms
199988,0ms
199989,0ms
199990,0ms
200000,0ms
200001,0ms
1599981,15ms
1599982,15ms
1599983,15ms
1599984,15ms
1599985,15ms
1599986,15ms
1599987,15ms
1599988,15ms
1599989,15ms
1599990,15ms
2600000,15ms
2600001,15ms
13199998,15ms
35000000,15ms
35000001,15ms
35199981,31ms
35199982,31ms
35199983,31ms
35199984,31ms
35199985,31ms
35199986,31ms
35199987,31ms
35199988,31ms
35199989,31ms
35199990,31ms
35200000,31ms
35200001,31ms
117463825,31ms
500000000,31ms
500000001,31ms
500199981,31ms
500199982,31ms
500199983,31ms
500199984,31ms
500199985,31ms
500199986,31ms
500199987,31ms
500199988,31ms
500199989,31ms
500199990,31ms
500200000,31ms
500200001,31ms
501599981,47ms
501599982,47ms
501599983,47ms
501599984,47ms
501599985,47ms
501599986,47ms
501599987,47ms
501599988,47ms
501599989,47ms
501599990,62ms
502600000,62ms
502600001,62ms
513199998,62ms
535000000,78ms
535000001,78ms
535199981,78ms
535199982,78ms
535199983,78ms
535199984,78ms
535199985,78ms
535199986,78ms
535199987,78ms
535199988,78ms
535199989,78ms
535199990,78ms
535200000,78ms
535200001,78ms
1111111110,78ms
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics