甲级 1023 Have Fun with Numbers

一次通过了
虽然是第一题简单些
没看别人代码,自己写的有些笨

泪流满面

#include <cstdio>
#include <iostream>
#include <cstring>

using namespace std;

char arr[22];
int brr[22], cnt;
int key1[10], key2[10];

int main(){

    cin >> arr; 
    int l = strlen(arr);    
    for(int i=0; i<l; i++){
        key1[arr[i]-'0']++; 
        brr[i] = (arr[i] - '0') * 2;
    }   
    for(int j=l-1; j>=0; j--){
        brr[j] += cnt;
        cnt = 0;
        if(brr[j] >= 10){
            cnt = brr[j] / 10;
            if(j != 0) {
                brr[j] = brr[j] % 10;
                key2[brr[j]]++;             
            }
            else {              
                int c = brr[j];
                while(1){
                    key2[c%10]++;
                    c = c/10;
                    if(c == 0) break;
                    }                               
            }
        }else key2[brr[j]]++;

    }
    int flag = 0;
    for(int t=0; t<10; t++){
        if(key1[t] != key2[t]){
            printf("No\n");
            flag = 1;
            break;
        }
    }

    if(flag == 0) printf("Yes\n");
    for(int k=0; k<l; k++) cout << brr[k] ;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/mdzz_z/article/details/81460407