1023. Have Fun with Numbers (20)
2018-03-18 12:00
531 查看
1023. Have Fun with Numbers (20)
时间限制 400 ms内存限制 65536 kB
代码长度限制 16000 B
判题程序 Standard 作者 CHEN, Yue
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:
1234567899Sample Output:
Yes 2469135798 PS:大数模拟乘法即可,但是有一个坑就是输入有前置0,即001234567899,输出不能有前置0
#include<bits/stdc++.h> using namespace std; int num_int1[10],num_int2[10]; char num[30],num2[30]; int main() { int carry ; while(cin >> num){ memset(num2,0,sizeof(num2)); memset(num_int1,0,sizeof(num_int1)); memset(num_int2,0,sizeof(num_int2)); for(int i = 0; i < strlen(num); i++){ num_int1[num[i]-'0']++; } carry = 0; for(int i = strlen(num)-1; i >= 0; i--){ int n = num[i]-'0'; int tmp = 2*n+carry; num2[i] = tmp%10+'0'; num_int2[tmp%10]++; carry = tmp / 10; } if (carry != 0){ cout << "No" << endl; cout << carry ; } else{ int flag = 1; for(int i = 0; i < 10; i++){ if (num_int1[i] != num_int2[i]){ cout << "No" << endl; flag = 0; break; } } if (flag) cout << "Yes" << endl; } bool z = 0; for(int i = 0;i < strlen(num);++i) { if(num2[i]-'0' == 0 && z == 0) continue; if(num2[i]-'0') z = 1; printf("%d",num2[i]-'0'); } cout << endl; } return 0; }
相关文章推荐
- 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- PAT PAT 1023. Have Fun with Numbers (20)
- PAT 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- 【PAT】1023. Have Fun with Numbers (20)
- 1023.Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20) PAT甲级
- PAT甲级1023. Have Fun with Numbers (20)
- PAT 甲级 1023. Have Fun with Numbers (20)
- 【PAT】1023. Have Fun with Numbers (20)
- PAT 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- PAT 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)