成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試題:4億里有多少個1(11算2個)

開發 前端
對于我們進入職場,當然要經過面試。下面就是面試中的一道題,讓我們起來看。

面試題:4億里有多少個1(11算2個)

乍看這題真夠唬人的,群里看到這個題目后爭先恐后的說看法。最簡單的辦法不外乎就是遍歷每個數,然后toString() 看看里面有多少個1,最后全部加起來,這是我們得到標準答案的辦法。

群里算上我3個人寫了3個笨方法都跑出來了,3個笨方法,呵呵 有意思,笨方法也不一樣。 程序的實現真是變幻莫測。

  1. var re = /1{1}/g;   
  2. var max = 4 * 10000 * 10000;   
  3. getTotal(f);   
  4. getTotal(f1);   
  5. getTotal(f2);   
  6. function getTotal(func)   
  7. {   
  8. var total = 0;   
  9. var begin = new Date();   
  10. for(var i= 1 ;i <= max;i++)   
  11. {   
  12. total += func(i);   
  13. }   
  14. var end = new Date();   
  15. var timespan = end - begin;   
  16. alert("開始時間:"+begin + "\n 結束時間:"+end +"\n總耗時:"+timespan + "毫秒 \n 總數:"+total);   
  17. }   
  18. function f(num)   
  19. {   
  20. var t = 0;   
  21. while(num)   
  22. {   
  23. if(num < 10){ if(num==1)t++;break;}   
  24. var i = num % 10;   
  25. if(i == 1) t++;   
  26. num = parseInt(num / 10);   
  27. }   
  28. return t;   
  29. }   
  30. function f1(num)   
  31. {   
  32. var str = num.toString()   
  33. var t = 0;   
  34. for(var i=0;i<str.length;i++)   
  35. {   
  36. if(str.charAt(i)=="1") t++;   
  37. }   
  38. return t;   
  39. }   
  40. function f2(num)   
  41. {   
  42. var str = num.toString();   
  43. var t = 0;   
  44. while(re.exec(str))   
  45. {   
  46. t++;   
  47. }   
  48. return t;   
  49. }  

當數量少的時候第一種最快,顯然嘛,沒有處理字符串的步驟。按理說數量越大他越有優勢。 可是實測結果,3個都差不多。但是用C#跑的話,第一個明顯越來越有優勢。。。。

但是出題人肯定不是這樣想的,很多人都在說自己的技巧與看法,我也思考了很久。

先拿 100來說 ,100里面有多少個1?

 

  1. 10  
  2. 11  
  3. 12  
  4. 13  
  5. 14  
  6. 15   
  7. 16   
  8. 17   
  9. 18   
  10. 19   
  11. 01   
  12. 11   
  13. 21   
  14. 31   
  15. 41   
  16. 51   
  17. 61   
  18. 71   
  19. 81   
  20. 91 

 

故意這么排列是我們可以把 0~99看作是 1個長度為2的數組, 1位為1時,2位的可能性是10,2位為1時1位的可能性為10,所以 0~99應該有20個1,而100有1個所以是21個。

999就應該是 1*10*10 + 10*1*10 + 10*10*1 = 300

400呢? 因為首位只能出現0~3 ,所以應該是 1*10*10 + 4*1*10 + 4*1*10

4 0000 0000 應該是 1 * (10^8) + 4*(10^7) * 8 = 420000000

通過本文的分析,你是不是了解了呢??程序真的是太變化莫測了,同樣,一道題當然有不同的解法。如果你有,我們可以一同分享。

【編輯推薦】

  1. 三大鼎足IT名企面試題
  2. 1.4.3 有趣的微軟面試題目
  3. 深入剖析C/C++程序員應聘常見面試題
  4. 應屆畢業生應聘求職:25個刁鉆面試題解析
責任編輯:于鐵 來源: 博客園
相關推薦

2014-09-02 11:04:49

PHP面試題PHP

2024-06-04 14:52:28

2019-09-30 08:50:51

Linux發行版內核

2014-12-02 10:02:30

2015-08-27 09:27:34

JavaScript面試題

2017-08-29 14:12:16

Java面試題

2021-10-27 06:32:06

服務器JVM內存

2016-05-05 17:45:43

Spring面試題答案

2019-03-23 20:00:04

面試react.js前端

2011-07-18 15:08:19

SQL存儲過程

2021-06-02 12:12:46

DevOps面試Linux

2023-09-26 16:44:14

光模塊

2012-08-02 09:36:58

fork面試題

2019-11-26 10:30:11

CSS前端面試題

2019-08-09 09:50:38

Java編程語言面試題

2025-01-09 12:00:00

JavaScript前端數組

2015-08-19 09:35:49

Java main面試題

2015-09-29 09:24:22

Node.js面試題

2020-06-04 14:40:40

面試題Vue前端

2019-01-02 16:31:33

程序員技術互聯網
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 作爱视频免费观看 | 色香蕉在线 | 中文天堂网 | 91免费在线视频 | 婷婷中文在线 | 亚洲人在线观看视频 | 在线看片网站 | av黄色在线观看 | 日韩国产在线 | 精品一区二区三区四区在线 | 日韩在线大片 | 国产精品毛片av一区 | 91视频在线 | 午夜成人免费视频 | 久久欧美精品 | 9色网站 | 久久国产精品一区二区 | 999久久久 | 一级毛片免费视频观看 | 精品一区二区在线观看 | 欧美aaaa视频 | 久久精品视频在线观看 | 99免费| 成人天堂噜噜噜 | 亚洲国产精品日韩av不卡在线 | 我要看黄色录像一级片 | 久久久久国产一区二区三区四区 | 日日干日日色 | 在线成人免费观看 | 欧美毛片免费观看 | 国产日韩久久久久69影院 | 三级av网址 | 亚洲精选久久 | 国产精品精品视频一区二区三区 | 午夜激情影院 | 国产精品久久久久久婷婷天堂 | 欧美不卡在线 | 久久久高清 | 日韩一区二区在线视频 | 久久美国 | 成人精品一区二区三区中文字幕 |