演算法設計與分析 1 1 統計數字問題(C語言版)

2021-06-20 20:38:15 字數 1038 閱讀 6678

問題描述:
一本書的頁碼從自然數1開始順序編碼直到自然數n。書的頁碼 按照通常的習慣編排,乙個頁碼內都不包含多餘的前導數字0.例如,第6頁用數字6表示,而不是06或006等;數字計數問題要求給定書的總頁碼n,計算出書的全部頁碼中分別用到多少次數字0,1,……9.
給定表示書的總頁碼的十進位制數n。變成計算書的全部頁碼  中分別用到多少次0,1,……9.
資料輸入:
輸入資料由檔名為input.txt的文字檔案提供。每個檔案只有一行,給出表示書的總頁碼的整數n。
結果輸出:
程式執行結束時,將計算結果輸出到檔案output.txt中。輸出檔案共有10行,在地k行輸出頁碼中用到的數字(k-1)的次數,k=1,2,……10.
c程式**如下:
(此題用到了重定向問題)
#include#includeint a[10]=;	

void count(int n)

}int main()

for(j=0;j<=9;j++)

} /*(1)我們平常讀取資料都要從stdin讀取,就是從標準輸入讀取資料,用freopen("file.in", "r", stdin),

就是不再從stdin讀取,而是從file.in讀取;

(2)平常寫資料是寫到stdout,就是寫到標準輸出,顯示在控制台上,用freopen("file.out", "w", stdout);

就是直接寫在file.out檔案裡,不在控制台上輸出了

(3)函式 scanf() 是從標準輸入流 stdin 中讀內容的通用子程式,可以讀入全部固有型別的資料並自動轉換成機內形式。

所以說,scanf此時讀取的便是檔案中的資料,並把它儲存在了變數temp中 */

1 1 統計數字問題

題解 000.0 999.9 n個9 則0 9中每個數字出現的次數都是n 10 n 1 即每個數字出現次數相同。但是因為不含前導0.所以要把多算的0給去掉。具體的,設n這個數字的長度為l,則需要減去1111.1 l個1 個多餘的0.然後做個數字dp就好。詳見 include include incl...

1 1統計數字問題(詳解)

題目描述 從1頁到n頁,統計0到9出現的次數 include include includeusing namespace std int main int n cin n for int i 1 i n i for int i 0 i 9 i 這個公式可以這麼理解 當n 21時,要減去的0有 10...

演算法實現題 1 1 統計數字問題

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