3449: 統計頁碼

fuyfuei123發表於2020-12-19

** 3449: 統計頁碼**

描述

一本書的頁數為N,頁碼從1開始編起,請你求出全部頁碼中,用了多少個0,1,2……9。

輸入

輸入資料有多組,每組資料一行,包括一個正整數N(N<=10000),表示總的頁碼。## 輸出
如果二維陣列中至少存在一行或一列,其元素之和為x,則輸出YES,否則輸出NO

輸出

每組資料輸出十行:每組的第k行為數字k-1的個數。

每組資料之後輸出一個空行。

樣例輸入

11

樣例輸出

1
4
1
1
1
1
1
1
1
1

執行結果

程式碼片

輸入的9999值
輸入的11值


#include<stdio.h>
#define N 10000
int main()
{
  int i,j,a[5]={0},b[N][10]={{0,1},{0,1,1}},c=0,shu;
  for(i=3;i<=N;i++)
  {
	  	c=0;shu=i;
	   while(shu)
	   {
		   	a[c]=shu%10;
		   	shu/=10;
		   	c++;
	   }
	   for(j=0;j<c;j++)
	   {
		   	switch(a[j])
		   	{
			  case 0:b[i-1][0]++;break; 
			  case 1:b[i-1][1]++;break;
			  case 2:b[i-1][2]++;break;
			  case 3:b[i-1][3]++;break;
			  case 4:b[i-1][4]++;break;
			  case 5:b[i-1][5]++;break;
			  case 6:b[i-1][6]++;break;
			  case 7:b[i-1][7]++;break;
			  case 8:b[i-1][8]++;break;
			  case 9:b[i-1][9]++;break; 	
		    }
	   }
	   for(j=0;j<10;j++){b[i-1][j]+=b[i-2][j];}
  }
  	
	while(scanf("%d",&shu)!=EOF)
	{
		for(j=0;j<10;j++){printf("%d\n",b[shu-1][j]);}
   	   printf("\n");
	}
	
} 

先打表再輸入數值,會減少程式碼時間資源

相關文章