統計數字問題

2022-03-13 07:22:26 字數 864 閱讀 7152

問題描述:

一本書的頁碼從自然數1開始順序編碼直到自然數n。書的頁碼按照通常的習慣編排,每個頁碼都不含多餘的前導數字0。例如第6頁用6表示而不是06或006。

數字統計問題要求對給定書的總頁碼,計算出書的全部頁碼中分別用到多少次數字0,1,2,3,.....9。

演算法分析:

比如,對於乙個數字34567,我們可以這樣來計算從1到34567之間所有數字中每個數字出現的次數:

從0到9999,這個區間的每個數字的出現次數可以使用原著中給出的遞推公式,即每個數字出現4000次。

從10000到19999,中間除去萬位的1不算,又是乙個從0000到9999的排列,這樣的話,從0到34567之間

的這樣的區間共有3個。所以從00000到29999之間除萬位外每個數字出現次數為3*4000次。然後再統計

萬位數字,每個區間長度為10000,所以0,1,2在萬位上各出現10000次。而3則出現4567+1=4568次。

之後,拋掉萬位數字,對於4567,再使用上面的方法計算,一直計算到個位即可。

下面是自己的實現**:

package abc;

public class countnum

public static int judge(int m)

//去除多餘的0的個數

num[0] -= cs;

x = x%cs;

num[y] += x+1;

cs = cs / 10;

} //最後到個位,每個數出現的次數

for(int i=0;i<=x;i++)

return num;

} public static void main(string args)

}

統計數字問題

在王曉東編著的 演算法設計與實驗題解 中看到的這個問題,問題描述如下 一本書的頁碼從自然數1開始順序編碼直到自然數n。書的頁碼按照通常的習慣編排,每個頁碼都不含多餘的前導數字0。例如第6頁用6表示而不是06或006。數字統計問題要求對給定書的總頁碼,計算出書的全部頁碼中分別用到多少次數字0,1,2,...

統計數字問題

問題描述如下 一本書的頁碼從自然數1開始順序編碼直到自然數n。書的頁碼按照通常的習慣編排,每個頁碼都不含多餘的前導數字0。例如第6頁用6表示而不是06或006。數字統計問題要求對給定書的總頁碼,計算出書的全部頁碼中分別用到多少次數字0,1,2,3,9。演算法設計與分析習題 分析 考察由0,1,2.9...

統計數字問題

問題描述 給定乙個整數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 ...