青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-80  評論-24  文章-0  trackbacks-0
問題1,求N!的十進制表示中末尾0的個數。
直接求出N!不太現實,很容易溢出。這個問題比較容易想到的是,因為2X5=10,所以可以求N!含有的因子2和因子5的個數??梢赃@樣表示N!=2x * 3y * 5z * 7a *...,在這個表達式中,我們容易得出x > z,因此只需要計算N!中含有因子5的個數,進而可以轉化成計算1-N這N個數含有因子5的個數之和,所以可以寫出代碼:

 1 int factorial1(int n) {
 2   int count = 0;
 3   while (n) {
 4     int m = n;
 5     while (m > 0 && m % 5 == 0) {
 6       count++;
 7       m /= 5;
 8     }   
 9     n--;
10   }
11   return count;
12 }

可以發現,上面的算法復雜度為O(Nlog5N),當N比較大時比如N=1000000000時,上面算法需要大概11s的時間,仔細想想,發現上面其實判斷了很多不需要判斷的值,因為很多數根本就不能被5整除,但是依然在外層while循環中被計算,所以我們可以只計算能被5整除的數,算法如下:

 1 int factorial2(int n) {
 2   int count = 0;
 3   n = (n / 5) * 5;
 4   while (n > 0) {
 5     int m = n;
 6     while (m > 0 && m % 5 == 0) {
 7       count++;
 8       m /= 5;
 9     }   
10     n -= 5;
11   }
12   return count;
13 }

上面算法從比n小的最大的能被5整除的數開始計算,且每次計算的步長為5,即跳過不是5的倍數的數,時間復雜度為O((Nlog5N)/5) ,當n=1000000000時,上面程序大概運行5s,較上一算法有所改進,不過復雜度沒有質的飛躍,籠統來說還是O(NlogN)。那么怎么進一步降低復雜度呢?
下面的算法就需要好好考慮如下事實:
1-N這N個數中有N/5個數是5的倍數
1-N這N個數中有N/52個數是52的倍數
1-N這N個數中有N/53個數是53的倍數
...
這樣就比較明了了,容易得到如下算法:

1 int factorial3(int n) {
2   int count = 0;
3   while (n > 0) {
4     n /= 5;
5     count += n;
6   }
7   return count;
8 }

上面的算法復雜度為O(log5N),對n=1000000000,上面算法只運行了0.004s。

問題2,求N!的二進制表示中末尾0的個數。 
該問題和上面的問題其實非常相似,稍作轉化就成為求N!中2的因子數,這樣就可以用上面的算法來解決:

1 int factorial3(int n) {
2   int count = 0;
3   while (n > 0) {
4     n >>= 1;
5     count += n;
6   }
7   return count;
8 }

這兩個問題的難點在轉化成求5或者2因子的個數;并且善于深入挖掘問題,編碼降低復雜度。
posted on 2012-09-04 12:24 myjfm 閱讀(2012) 評論(0)  編輯 收藏 引用 所屬分類: 算法基礎
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜精品成人在线| 欧美精品aa| 欧美激情精品久久久久久黑人| 黄色一区二区三区四区| 国产午夜精品理论片a级大结局| 你懂的视频一区二区| 亚洲女人av| 一本一道久久综合狠狠老精东影业 | 亚洲国产成人在线视频| 久久成人人人人精品欧| 久久综合色婷婷| 91久久久久| 亚洲免费人成在线视频观看| 欧美在线高清视频| 欧美电影免费观看高清完整版| 欧美成人精品福利| 国产精品高清在线观看| 国产日韩三区| 一二三四社区欧美黄| 久久精品视频免费播放| 最新亚洲一区| 久久成人免费视频| 欧美日韩在线视频一区| 国内精品久久久久影院色| 亚洲精选在线观看| 久久免费黄色| 亚洲私人影院在线观看| 久久亚洲一区二区三区四区| 欧美色区777第一页| 精品99一区二区| 亚洲欧美偷拍卡通变态| 欧美国产丝袜视频| 亚洲欧美在线看| 欧美视频日韩| 亚洲免费观看高清在线观看| 久久久久国内| 亚洲综合三区| 欧美色视频日本高清在线观看| 亚洲国产精品免费| 久久亚洲春色中文字幕| 亚洲伊人观看| 国产精品成人免费| 99精品欧美| 欧美成人精品高清在线播放| 香蕉视频成人在线观看 | 欧美日韩国产二区| 亚洲高清一二三区| 久久久综合激的五月天| 一区二区三区视频免费在线观看| 男人的天堂亚洲| 一区二区亚洲精品| 久久精品成人| 欧美一级视频精品观看| 国产精品久久久一本精品| 亚洲精品色婷婷福利天堂| 猛男gaygay欧美视频| 久久高清一区| 亚洲图片欧美午夜| 亚洲国产精品久久久久秋霞影院 | 欧美肥婆在线| 久久亚洲综合色一区二区三区| 久热精品在线视频| 韩日午夜在线资源一区二区| 日韩午夜电影av| 亚洲欧洲在线观看| 欧美成人免费一级人片100| 激情懂色av一区av二区av| 美日韩精品视频免费看| 亚洲国产精品国自产拍av秋霞| 久久激情一区| 久久成人在线| 亚洲福利在线视频| 亚洲国产一区二区视频| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲电影中文字幕| 亚洲黄色片网站| 欧美日韩一区二区三区在线看 | 亚洲无玛一区| 亚洲欧美区自拍先锋| 国产欧美69| 欧美激情免费观看| 欧美日韩精品系列| 久久国产加勒比精品无码| 性欧美办公室18xxxxhd| 1769国内精品视频在线播放| 亚洲丁香婷深爱综合| 欧美日本精品一区二区三区| 亚洲欧美日韩网| 玖玖玖免费嫩草在线影院一区| 99国产精品久久| 亚洲欧美在线x视频| 亚洲国产一区二区视频| 99精品久久免费看蜜臀剧情介绍| 国产麻豆成人精品| 亚洲国产精品va在线看黑人| 国产精品av免费在线观看| 久久久久国产精品一区二区| 欧美国产高潮xxxx1819| 欧美一级久久久| 欧美成人午夜激情在线| 欧美一级专区免费大片| 欧美韩日一区二区| 久久全球大尺度高清视频| 欧美区一区二| 欧美成人黄色小视频| 国产精一区二区三区| 欧美激情第10页| 在线视频国内自拍亚洲视频| 亚洲视频在线看| 91久久国产综合久久91精品网站| 亚洲午夜免费视频| 亚洲理伦在线| 久久久久成人网| 久久xxxx| 国产精品日韩欧美一区| 亚洲国产另类久久精品| 国产亚洲精品激情久久| av成人毛片| 一本久道久久综合婷婷鲸鱼| 快播亚洲色图| 久久综合图片| 国产在线观看精品一区二区三区| 一本久道久久综合婷婷鲸鱼| 国产在线观看一区| 亚洲欧美另类在线| 午夜亚洲性色福利视频| 欧美精品国产精品| 亚洲国产精品尤物yw在线观看| 一区二区三区在线观看国产| 久久国内精品自在自线400部| 性欧美video另类hd性玩具| 欧美午夜精品久久久久久超碰| 亚洲欧洲日韩在线| 91久久综合| 欧美人成网站| 一本久道综合久久精品| 亚洲一区二区三区中文字幕| 欧美四级伦理在线| 亚洲天堂男人| 欧美中文字幕在线| 国产一区二区高清视频| 欧美一区二区三区四区在线| 久久精品99久久香蕉国产色戒| 韩日在线一区| 美女图片一区二区| 亚洲高清色综合| 中文国产成人精品| 国产精品入口日韩视频大尺度| 一本在线高清不卡dvd| 亚洲一区二区三区激情| 国产精品久久久久久久久婷婷| 亚洲欧美另类在线| 裸体一区二区三区| 日韩亚洲视频| 国产日韩精品一区二区三区在线| 久久gogo国模啪啪人体图| 久久九九国产精品| 亚洲国产婷婷综合在线精品| 欧美日韩中文| 久久国产欧美精品| 最新中文字幕亚洲| 欧美在线啊v一区| 最新日韩在线| 国产伦精品一区二区| 久久狠狠久久综合桃花| 欧美电影专区| 亚洲综合电影一区二区三区| 国产免费观看久久| 老司机午夜精品视频| 99香蕉国产精品偷在线观看| 久久久久久尹人网香蕉| 亚洲精品中文字| 国产亚洲精品成人av久久ww| 欧美精品激情| 久久精品网址| 一本大道久久精品懂色aⅴ| 久久精品人人做人人综合 | 羞羞视频在线观看欧美| 一区二区三区视频在线观看| 亚洲一区二区三区四区五区黄| 久久免费99精品久久久久久| 国产中文一区二区| 久热综合在线亚洲精品| 日韩视频中文字幕| 国产日韩欧美中文在线播放| 欧美黄色一区| 久久国产福利| 亚洲一区精品视频| 亚洲激情视频在线| 久久这里只有| 欧美一区二区三区成人 | 亚洲欧美三级在线| 亚洲人www| 亚洲成人资源| 国产一区二区三区久久悠悠色av| 欧美日韩综合一区| 蜜臀99久久精品久久久久久软件| 性色av一区二区三区| 亚洲视频在线观看视频| 99ri日韩精品视频|