百度笔试题

50 篇文章 0 订阅
11 篇文章 0 订阅

1)此题10分 
对任意输入的正整数N,编写C程序求N!的尾部连续0的个数,并指出计算复杂度。如:18!=6402373705728000,尾部连续0的个数是3。 

(不用考虑数值超出计算机整数界限的问题)

答:此题可以转化为统计n个数中能被5或10整除的数。因为末尾为0的出现是因为5*2的或者是该数中直接包含0(比如10)作用,因为5的倍数的前一个数肯定是2的倍数,所以只要找能够被5整除的数和被10整除的数即可。时间复杂度为O(n)。

  1. #include<iostream>  
  2. using namespace std;  
  3. int NumofZero(int n)  
  4. {  
  5.     int i,num=0,j=0,k;  
  6.     for(i=5;i<=n;i+=5)  
  7.     {  
  8.         k=i;  
  9.         //如果能被10整除则统计k中末尾有多少个0  
  10.         while(k%10==0)  
  11.         {  
  12.             k=k/10;  
  13.             j++;  
  14.         }  
  15.         //除掉k后面的0后如果还能够被5整除则再累加比如50去掉0后是5,5还可以被5整除  
  16.         while(k%5==0)  
  17.         {  
  18.             j++;  
  19.             k=k/5;  
  20.         }  
  21.         num+=j;  
  22.         j=0;  
  23.     }  
  24.     return num;  
  25. }  
  26. int main()  
  27. {  
  28.     int n;  
  29.     while(cin>>n&&n)  
  30.     {  
  31.         cout<<NumofZero(n)<<endl;  
  32.     }     
  33.     return 0;  
  34. }  




2)此题10分 
编写一个C语言函数,要求输入一个url,输出该url是首页、目录页或者其他url 
如下形式叫做首页: 
militia.info/ 
www.apcnc.com.cn/ 
http://www.cyjzs.comwww.greena888.com/ 
www.800cool.net/ 
http://hgh-products.my-age.net/ 
如下形式叫做目录页: 
thursdaythree.net/greenhouses--gas-global-green-house-warming/ 
http://www.mw.net.tw/user/tgk5ar1r/profile/ 
http://www.szeasy.com/food/yszt/chunjie/ 
www.fuckingjapanese.com/Reality/ 

请注意: 
a) url有可能带http头也有可能不带 
b)动态url(即含有"?"的url)的一律不算目录页,如: 
www.buddhismcity.net/utility/mailit.php?l=/activity/details/3135/ 
www.buddhismcity.net/utility/mailit.php?l=/activity/details/2449/ 

另:如果你会linux,请用linux下的grep命令实现第2题的功能(附加5分)。 

3)此题40分 
如果必须从网页中区分出一部分"重要网页"(例如在10亿中选8亿),比其他网页更值得展现给用户,请提出一种方案。 

4)此题40分 
假设有10亿网页已经被我们存下来,并提供如下信息:网页全文(即网页的源码)、全文长度、网页正文(即网页中提取的主体文字)、 
正文长度,以及其他网页提取物等,现在希望去掉其中的重复网页,请提出可行的方案,计算出每个网页对应的重复度,你可以自己 
对网页重复下定义,也可以提出需要哪些更多的网页提取物来实现更好的去重复方案 

原文地址:点击打开链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值