1. 程式人生 > >UVa 1225 Digit Counting(習題3-3)

UVa 1225 Digit Counting(習題3-3)

程式碼之前發過c語言版本的,這回重新發一次,相當於是補充吧

這個應該不算是字串的處理了吧,從1開始列舉到n,然後每個數字分別出現的次數

先把數字取模10之後ans陣列++,然後數字再陳10直到數字為0

程式碼:

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;

int ans[11];
int s;
int main()
{
	int n;
	cin>>n;
	for(int i = 1;i<=n;i++)
	{
	    memset(ans,0,sizeof(ans));
		cin>>s;
		for(int j = 1;j<=s;j++)
		{
			int tmp = j;
			while(tmp>0)
			{
				ans[tmp%10]++;
				tmp /= 10;
			}
		}
        for(int j = 0;j<9;j++)
           cout<<ans[j]<<" ";
        cout<<ans[9]<<endl;
	}
	return 0;
}