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;
} 
全部评论

相关推荐

明明就不饿:看不懂你到底会啥,什么岗位
点赞 评论 收藏
分享
03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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