码迷,mamicode.com
首页 > 其他好文 > 详细

1023. Have Fun with Numbers (20)

时间:2015-03-02 19:09:06      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:pat   c++   

Notice that the number 123456789 is a 9-digit number consisting exactly the numbers from 1 to 9, with no duplication. Double it we will obtain 246913578, which happens to be another 9-digit number consisting exactly the numbers from 1 to 9, only in a different permutation. Check to see the result if we double it again!

Now you are suppose to check if there are more numbers with this property. That is, double a given number with k digits, you are to tell if the resulting number consists of only a permutation of the digits in the original number.

Input Specification:

Each input file contains one test case. Each case contains one positive integer with no more than 20 digits.

Output Specification:

For each test case, first print in a line "Yes" if doubling the input number gives a number that consists of only a permutation of the digits in the original number, or "No" if not. Then in the next line, print the doubled number.

Sample Input:
1234567899
Sample Output:
Yes

2469135798

#include <iostream>
#include <string>
using namespace std;

int add(int n) {
    return 1<<n;
}

void compare(string str) {
    int len = str.length();
    int carry = 0;
    int tmp;
    int sign1 = 0;
    int sign2 = 0;

    while(len) {
        sign1 += add(str[len-1] - '0');
        tmp = (str[len-1] - '0') * 2;
        str[len-1] = '0' + tmp%10 + carry;
        sign2 += add(str[len-1] - '0');
        carry = (tmp + carry)/10;
        len--;
    }
    if(sign1 == sign2) {
        cout<<"Yes"<<endl;
    } else {
        cout<<"No"<<endl;
    }
    if(carry == 0) {
        cout<<str<<endl;
    } else {
        cout<<carry<<str<<endl;
    }
}
int main() {
    string in;
    cin>>in;
    compare(in);
    return 0;
}


1023. Have Fun with Numbers (20)

标签:pat   c++   

原文地址:http://blog.csdn.net/jason_wang1989/article/details/44021107

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!