數字統計問題

2021-10-09 21:17:12 字數 940 閱讀 3807

(1)、問題描述

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

(2)、演算法設計

給定表示書的總頁碼的10 進製整數n (1≤n≤10 ) 。程式設計計算書的全部頁碼中分別用到多少次數字0,1,2,…,9。

1.暴力法

#includeusing namespace std;

int main();

int n;

cin>>n;

for(int i=1;i<=n;i++)

} for(int i=0;i<=9;i++)

cout<#include using namespace std;

int c[10];

//獲取位數

int get_length(int num)

//獲取最高位

int get_highest(int num)

//獲取除去高位的餘數

int get_remainder(int num)

//n位數多出的零的個數

int get_zeronum(int n)

//遞迴解決流程

void solve(int num)

int len = get_length(remainder);

if (len != length - 1)

c[0] = c[0] - get_zeronum(length - 1);

return solve(remainder);

}int main()

return 0;

}

數字統計問題

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

數字統計問題

演算法設計 給定表示書的總頁碼的十進位制整數n 1 n 10 9 計算書的全部頁碼中分別用到多少次數字數字0,1,2,9.輸入 11 輸出 141 1111 11題解 數論 找規律 看到這種題,dfs把數重新組合複雜度比直接暴力列舉還要高,沒用。只能找規律,重新劃分區間才有可能。首先根據排列組合原理...

統計數字問題

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