1 条题解

  • 0
    @ 2025-9-9 23:46:55

    C :

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    char m[]="22233344455566677778889999";
    int p[10000000];
    char buf[1000];
    int i,j,k,duplicate;
    int main()
    {
        int n;
        memset(p,0,sizeof(p));
        scanf("%d\n",&n);
        for(i=0;i<n&&gets(buf);i++)
         {
           int tel=0;
           for(k=j=0;buf[j];++j)
            {
    
                if(buf[j]=='-') continue;
                if(buf[j]>='A'&&buf[j]<='Z')
                {
                    tel=tel*10+m[buf[j]-'A']-'0';
                }
                else if(buf[j]>='0'&&buf[j]<='9')
                {
                    tel=tel*10+buf[j]-'0';
                }
    
            }
            ++p[tel];
         }
         duplicate=0;
         for(i=0;i<9999999;++i)
         {
    
                 if(p[i]>1)
                 {
                     printf("%03d-%04d %d\n",i/10000,i%10000,p[i]);
                     duplicate=1;
                 }
         }
         if(duplicate==0)
            puts("No duplicates.");
      return 0;
    }
    
    
    • 1

    信息

    ID
    1108
    时间
    2000ms
    内存
    64MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者