1023. Have Fun with Numbers (20)

*吐槽:这是一道表面字符串,实际上是大数的加法加上一点点散列。
但是我觉得我还是把代码写得太复杂了。*

#include<cstdio>
#include<cstring>
int main(){
    char str[25];
    int  arr1[10];
    int  arr2[10];
    int  s[25];
    while(scanf("%s",str) != EOF){
        memset(arr1,0,sizeof(arr1));
        memset(arr2,0,sizeof(arr2));
        memset(s,0,sizeof(s));
        int len = strlen(str);
        int c=0,tmp,i;
        for(i=0;i<len;i++){
            tmp = str[len-1-i] - '0';
            arr1[tmp]++; 
            s[i] = (2*tmp + c) % 10;
            arr2[s[i]]++;
            c =(2*tmp + c) / 10;
        }
        if(c!=0){
            s[i]=c; 
            arr2[s[i]]++;
            i++;    
        } 
        int j;
        for(j=0;j<10;j++){
            if(arr1[j] != arr2[j]){
                 printf("No\n");
                 break;
            }      
        }
        if(j==10) printf("Yes\n");
        for(j=0;j<i;j++){
            printf("%d",s[i-1-j]);
        }
        printf("\n");   
    }
    return 0;
} 
全部评论

相关推荐

勇敢的突尼斯海怪选钝...:楼主这拒意向话术好得体呀 !求问HR回复态度咋样呀
点赞 评论 收藏
分享
2025-11-11 16:40
已编辑
门头沟学院 人工智能
不知道怎么取名字_:这个有点不合理了,相当于已经毕业了,但还是没转正,这不就是白嫖
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务