成人免费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發行版內核

2017-08-29 14:12:16

Java面試題

2014-12-02 10:02:30

2015-08-27 09:27:34

JavaScript面試題

2021-10-27 06:32:06

服務器JVM內存

2011-07-18 15:08:19

SQL存儲過程

2021-06-02 12:12:46

DevOps面試Linux

2016-05-05 17:45:43

Spring面試題答案

2019-03-23 20:00:04

面試react.js前端

2023-09-26 16:44:14

光模塊

2025-01-09 12:00:00

JavaScript前端數組

2015-09-29 09:24:22

Node.js面試題

2015-08-19 09:35:49

Java main面試題

2012-08-02 09:36:58

fork面試題

2019-11-26 10:30:11

CSS前端面試題

2019-08-09 09:50:38

Java編程語言面試題

2019-01-02 16:31:33

程序員技術互聯網

2020-08-04 16:56:50

Java方法參數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕在线一区 | 欧美一区二区 | 欧美日韩在线视频观看 | 免费观看一级特黄欧美大片 | 嫩草91在线| 欧美日本韩国一区二区三区 | 亚洲在线 | 成人三级av | 福利片在线观看 | 日韩福利在线观看 | 九色网址| 国产精品1区| 麻豆精品国产91久久久久久 | 日韩免费高清视频 | 草草网| 999久久久久久久久6666 | 久久黄网| 日韩欧美三级电影 | 国产网站在线免费观看 | 亚洲一区在线免费观看 | 亚洲一区二区三区四区在线观看 | 玖玖免费 | 亚洲精品成人av久久 | 日韩欧美一区二区在线播放 | 成人精品一区 | 玖玖视频 | 日韩乱码一二三 | 国产精品高清一区二区三区 | 一级黄色毛片免费 | 久久成人精品视频 | 自拍中文字幕 | 国产一区二区三区四区 | 亚洲国产一区二区三区在线观看 | 国产99久久 | 91成人免费看片 | 精精久久| 91.xxx.高清在线 | 国产你懂的在线观看 | 一区二区三区精品在线 | 在线观看国产91 | av网站观看 |