/***************************************************************************
* 日期:2013年9月28
* All Rights Reserved,西華師大計算機學院
* 作者:曾舜堯
* 問題:數字計數問題要求給定書的總頁碼,計算出書的全部頁碼中分別
* 用到多少次數字0,...,9(教材 Page 8)
* 輸入:從文件中一個數,給出表示書的總頁碼數的整數page
* 輸出:將結果輸出到文件。輸出文件共有10行,在第k行輸出用到的k-1的次數,k=1,2,..9。
* 分析:窮舉法
* 備注:因不會文件操作,此程序采用鍵盤輸入
**************************************************************************/
#include "stdio.h"
int pa[10]={0};//記錄數組
/*計算次數*/
void div(int num)
{
int count=num%10;
pa[count]++;
if(num<10)
return ;
div(num/10);
}
/*遍歷頁碼*/
void computer(int page)
{
int i=0;
for(i=1;i<=page;i++)
{
div(i);
}
return ;
}
/*檢驗合法*/
/*輸出*/
/*主函數*/
int main()
{
int page=0;
int i=0;
printf("請輸入頁碼:");
scanf("%d",&page);
/*檢驗合法*/
if(page<=0)
{
printf("輸入數據不合法!\n");
return 0;
}
computer(page);
/*輸出結果*/
for(i=0;i<=9;i++)
printf("%d出現%d次\n",i,pa[i]);
return 0;
}本文出自 “理論先行實踐並重” 博客,請務必保留此出處http://69680919.blog.51cto.com/4896756/1303188