1023 Have Fun with Numbers (20分)

点击前往【PAT甲级之路总纲】

题目

1023 Have Fun with Numbers (20分)_第1张图片Sample Input:

1234567899

Sample Output:

Yes
2469135798

分析

查表+长数据计算

注意数据的极限
int的上限: -231——231-1,即-2147483648——2147483647 (超过9位则不能使用)
long的上限:(超过19位则不能使用)

要点

知识点

题解

#include 
#include 
using namespace std;
int book[10];
int main() {
#ifndef ONLINE_JUDGE
    freopen("data.txt","r", stdin);
#endif // ONLINE_JUDGE
    char num[22];
    scanf("%s", num);
    int carry= 0, len = strlen(num), flag=1;
    for(int i = len - 1; i >= 0; i--) {
        book[num[i] - '0']++;
        int temp = (num[i] - '0') * 2 + carry;
        carry = temp/10;
        temp = temp % 10;
        num[i] = (temp + '0');
        book[temp]--;
    }
    for(int i = 0; i < 10; i++) {
        if(book[i] != 0)
            flag = 0;
    }
    printf("%s", (carry > 0 || flag == 0) ? "No\n" : "Yes\n");
    if(carry >0) printf("%d", carry);
    printf("%s", num);
    return 0;
}


你可能感兴趣的:(#,PAT)