您的位置:首页 > 其它

uva 1225 Digit Counting

2017-07-30 19:42 351 查看
这道题很水,有三个思路去解决这个问题

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
++;
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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: