【PAT】 乙级 1021 个位数统计 (15 分)

给定一个k位整数 N = d k − 1 1 0 k − 1 + . . . + d 1 1 0 1 + d 0 ( 0 ≤ d i ≤ 9 , i = 0 , . . . , k − 1 , d k − 1 > 0 ) \N=d_{k-1}10^{k-1}+...+d_110^1+d_0(0 \leq d_i\leq 9,i=0,...,k-1,d_{k-1}>0) N=dk110k1+...+d1101+d0(0di9,i=0,...,k1,dk1>0),请编写程序统计每种不同的各位数字出现的次数。例如:给定 N = 100311 N=100311 N=100311,则有2个0,3个1,和1个3。
输入格式:
每个输入包含 1 个测试用例,即一个不超过 1000 位的正整数 N。
输出格式:
对N中每一种不同的个位数字,以D:M的格式在一行中输出该位数字D及其在N中出现的次数M。要求按D的升序输出。
输入样例:
100311
输出样例:
0:2
1:3
3:1


#include <stdio.h>

int main()
{
    char A[1001];
    int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,j=0,k=0;
    int i;
    scanf("%s", A);
    getchar();
    for(i = 0; A[i] != '\0'; i++)
    {
        if(A[i]-'0' == 0)a++;
        if(A[i]-'0' == 1)b++;
        if(A[i]-'0' == 2)c++;
        if(A[i]-'0' == 3)d++;
        if(A[i]-'0' == 4)e++;
        if(A[i]-'0' == 5)f++;
        if(A[i]-'0' == 6)g++;
        if(A[i]-'0' == 7)h++;
        if(A[i]-'0' == 8)j++;
        if(A[i]-'0' == 9)k++;
    }
    if(a != 0)printf("0:%d\n", a);
    if(b != 0)printf("1:%d\n", b);
    if(c != 0)printf("2:%d\n", c);
    if(d != 0)printf("3:%d\n", d);
    if(e != 0)printf("4:%d\n", e);
    if(f != 0)printf("5:%d\n", f);
    if(g != 0)printf("6:%d\n", g);
    if(h != 0)printf("7:%d\n", h);
    if(j != 0)printf("8:%d\n", j);
    if(k != 0)printf("9:%d", k);
    
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dataloading...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值