問題描述如下:
一本書的頁碼從自然數1開始順序編碼直到自然數n。書的頁碼按照通常的習慣編排,每個頁碼都不含多餘的前導數字0。例如第6頁用6表示而不是06或006。數字統計問題要求對給定書的總頁碼,計算出書的全部頁碼中分別用到多少次數字0,1,2,3,.....9。
《演算法設計與分析習題》分析:
考察由0,1,2...9組成的所有n位數。從n個0到n個9共有10^n個n位數。在這10^n個n位數中,0,1,2.....9第個數字使用次數相同,設為f(n)。f(n)滿足如下遞推式:
n>1: f(n) = 10f(n-1)+10^(n-1)
n = 1: f(n) =1
由此可知,f(n) = n*10^(n-1)。
據此,可從高位向低位進行統計,再減去多餘的0的個數即可。
【注:**中的文字例子描述引用自
計算還挺煩的。。呼,幸好有文字描述的例子才慢慢推出來。
統計數字問題
在王曉東編著的 演算法設計與實驗題解 中看到的這個問題,問題描述如下 一本書的頁碼從自然數1開始順序編碼直到自然數n。書的頁碼按照通常的習慣編排,每個頁碼都不含多餘的前導數字0。例如第6頁用6表示而不是06或006。數字統計問題要求對給定書的總頁碼,計算出書的全部頁碼中分別用到多少次數字0,1,2,...
統計數字問題
問題描述 給定乙個整數n,統計從1到n 數字最高位不允許為0 這麼多個數中0,1,2,3,4,5,6,7,8,9分別出現的次數。問題解決 採用遞迴求解統計每乙個數字0,1,2,9出現的次數累加。源 include stdafx.h include int results 10 void count ...
統計數字問題
目錄 問題描述 演算法設計 資料輸入 結果輸出 課後答案 有人將其稱為 補0遞迴法 舉例說明 666 完整 執行結果 一本書的頁碼從自然數1開始順序編碼直到自然數n。書的頁碼按照通常的習慣編排,每個頁碼都不含多於的前導數字0.例如,第6頁用數字6表示,而不是06或006等。數字計數問題要求對給定書的...