uva 1225 Digit Counting

来源:互联网 发布:三维人像建模软件 编辑:程序博客网 时间:2024/05/29 14:34

这道题很水,有三个思路去解决这个问题

1.用数学公式,总结数字出现的规律直接出结果,我有思路但是怕麻烦就没去做了= =

2.一个循环将最前出现的正整数全部填到一个字符串上,然后再一边遍历统计字符串上各个数字的个数。

3.遍历前面的数字,然后拆分数字各位上的数字不断刷新0-9的数字


下附代码:

 

#include <iostream>#include <algorithm>#include <map>#include <cstdio>#include <cstring>using namespace std;int flag[10];void split(int num){    while(num > 0)    {        int n = num % 10;        flag[n]++;        num /= 10;    }}int main(){    int t;    scanf("%d", &t);    while(t--)    {        memset(flag, 0, sizeof(flag));        int num;        cin >> num;        for(int i = 1; i <= num; i++)        {            split(i);        }        for(int i = 0; i < 10; i++)        {            if(i > 0)            {                cout << " ";            }            printf("%d", flag[i]);        }        cout << endl;    }    return 0;}

原创粉丝点击