免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: huwenhuo
打印 上一主题 下一主题

面试题目 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2009-10-27 13:42 |只看该作者
赞10楼!

论坛徽章:
0
12 [报告]
发表于 2009-10-27 13:44 |只看该作者
10..100    11个
5..95   10个
50要算两次    1个
25 75要算两次   2
总共24个

论坛徽章:
0
13 [报告]
发表于 2009-10-27 13:52 |只看该作者
#!/usr/bin/perl
use strict;

my $n=$ARGV[0];
my $num=0;
my $tmp=5;
while ( $n/$tmp >= 1 ) {
        ( my $x ) = ( $n/$tmp ) =~ m/(\d+)/;   # 提取整数部分
        $num += $x;                        
        $tmp *= 5;
}
print $num;

其实就是算可以分成好多个 5.
10 只有 2*5 能得到, 而2必然比5多, 所以有好多个5就会生成好多个 0

100/5 = 20
100/25 = 4
100/125 = 0

10 + 4 = 24

[ 本帖最后由 linuxty 于 2009-10-27 22:42 编辑 ]

论坛徽章:
0
14 [报告]
发表于 2009-10-27 14:55 |只看该作者
糟了
數到30個...

论坛徽章:
0
15 [报告]
发表于 2009-10-27 14:58 |只看该作者
原帖由 lokchungk 于 2009-10-27 14:55 发表
糟了
數到30個...



看錯了
原本只算最後

论坛徽章:
0
16 [报告]
发表于 2009-10-27 15:10 |只看该作者
懶人做法, 當然是比不上十樓的
use bignum;
$n = <>;
my $acc = 1,$c = 0;
map $acc *= $_,(1..$n);
$c++ while $acc =~ s,0$,,o;
print $c,"\n";


[ 本帖最后由 lokchungk 于 2009-10-27 15:13 编辑 ]

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
17 [报告]
发表于 2009-10-27 20:06 |只看该作者

回复 #10 linuxty 的帖子

顶这个,算术学得好!

论坛徽章:
0
18 [报告]
发表于 2009-10-27 22:07 |只看该作者
我是楼主, 十楼好解。

谢谢。

当时是电话面试, 心里有点毛了。

CU是个好地方!!

论坛徽章:
0
19 [报告]
发表于 2009-10-27 22:44 |只看该作者

回复 #18 huwenhuo 的帖子

你看看13楼那种方法 ,觉得应该是这种题的标准方法吧

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
20 [报告]
发表于 2009-10-27 22:55 |只看该作者
考算术了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP