UVa1225 数数字 习题3-3

3-3 「UVa1225」数数字:

把前n(n<=1000)个整数顺次写在一起:89101112...数一数09各出现多少次(输出10个整数,分别是09出现的次数)

代码

#include
#include
#define maxn 100000 //由于N<=1000所以数组要开大,要存10000个数字。 否则re
void makes(int n,char *s)
{
    char temp[10];
    for(int i=1;i<=n;i++){
        sprintf(temp,"%d",i);   //int型赋值给char型数组用sprintf函数 
        strcat(s,temp);
    }
    //printf("%s\n",s);
}

int main()
{
    int t,n,count[10];
    char s[maxn];
    scanf("%d",&t);
    while(t--){
        int tot=0;
        memset(count,0,sizeof(count));
        memset(s,0,sizeof(s));
        scanf("%d",&n);
        makes(n,s);
        for(int d=0;d<=9;d++){
            for(int i=0;i

简化版:

#include
#include
#define N 100000
char s[N],temp[10];
int count[10];
int main()
{
    int t,n,i;
    scanf("%d",&t);
    while(t--)
    {
        memset(count,0,sizeof(count));
        memset(s,0,sizeof(s));
        scanf("%d",&n);
        for(i=1;i<=n;i++){
            sprintf(temp,"%d",i);
            strcat(s,temp);
        }
        for(i=0;i
  • 注意
  • 输出格式每个答案之间要空一行

你可能感兴趣的:(UVa1225 数数字 习题3-3)