PAT 1023. Have Fun with Numbers (20)(字符串转换,20位数的加法)
来源:互联网 发布:杭州创业软件实施 编辑:程序博客网 时间:2024/06/03 18:31
官网
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:
1234567899
Sample Output:
Yes
2469135798
解题思路
- 1.判断和是否由原来的数子组成。
AC代码
#include<iostream>#include<string>#include<vector>#include<sstream>using namespace std;int keep[10];int main(int argc, char *argv[]){ string a,b; cin >> a; //keep置0 fill(keep,keep+10,0); b = ""; int next = 0; for (int i = a.length()-1; i >= 0; i--) { int tem = a[i] - '0'; //keep记录每个数字的个数 keep[tem]++; tem = 2 * tem + next; if (tem > 9) { tem = tem - 10; next = 1; }else { next = 0; } char c = '0' + tem; b = c + b; } //最高位相加大于10的情况 if (next > 0) { char c = '0' + next; b = c + b; } bool flag =true; //判断b中的数字是不是都是a中的 for (int i = 0; i <b.length() ; ++i) { int tem = b[i] - '0'; if (keep[tem] <= 0) { cout << "No" << endl; flag = false; break; }else { keep[tem] --; } } if (flag) { cout << "Yes" << endl; } cout << b << endl; return 0;}
- PAT 1023. Have Fun with Numbers (20)(字符串转换,20位数的加法)
- 【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)
- 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)
- PAT 1023. Have Fun with Numbers (20)
- pat 1023. Have Fun with Numbers (20)
- PAT 1023. Have Fun with Numbers (20)
- PAT PAT 1023. Have Fun with Numbers (20)
- PAT-A1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20) @ PAT (Advanced Level) Practise
- 【PAT Advanced Level】1023. Have Fun with Numbers (20)
- 【c++】PAT (Advanced Level)1023. Have Fun with Numbers (20)
- PAT A 1023. Have Fun with Numbers (20)
- Git速查手册
- mysql数据库复合索引
- combotree 默认选中值
- 用axis2解析xml失败的原因分析和解决方法
- 使用JDBC连接mysql数据库异常:ClassNotFound
- PAT 1023. Have Fun with Numbers (20)(字符串转换,20位数的加法)
- TcxGrid NewItemRecord Validate(TcxGrid NewItemRecord验证)
- 鱼与熊掌不可兼得!VS调试时拒绝访问的原因探究
- 单击按钮进行页面跳转
- Oracle常用sql语句整理
- LeetCode笔记:136. Single Number
- 《组合变身小宠物游戏》MonsterPetItem(修改更新中)【初学者】
- 11章 上机练习5
- Shell脚本浮点运算