PAT甲级 1023
来源:互联网 发布:假火车票制作软件 编辑:程序博客网 时间:2024/05/20 08:25
Have Fun with Numbers
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
考点
- 基本的数据处理
题解
- 由于unsigned long long int 最大20位,所以不能直接使用int型,利用char数组存取。
- 2个reverse使char数组翻转成方便处理和输出的样式。
笔记
- printf unsigned long long int用%llu
- strlen的头文件是string.h
#include<iostream>#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;const int maxn=20+2;char in[maxn];int first[10],second[10];void parse(int num[]){ int i=0; while(in[i]!='\0'){ ++num[in[i]-'0']; ++i; }}bool cmp(){ for(int i=0;i<10;i++){ if(first[i]!=second[i])return false; } return true;}int main(){ scanf("%s",in); parse(first); reverse(in,in+strlen(in)); int i; int add=0; for(i=0;i<strlen(in);i++){ add+=(in[i]-'0')*2; in[i]=add%10+'0'; add/=10; } if(add!=0){ in[i]=add+'0'; in[i+1]='\0'; } parse(second); reverse(in,in+strlen(in)); if(cmp()){ printf("Yes\n"); }else{ printf("No\n"); } printf("%s",in);}
- PAT(甲级)1023
- 浙大pat甲级 1023
- PAT甲级1023
- PAT甲级 1023
- pat 甲级 1023-1026
- PAT 甲级
- PAT 甲级 1023 Have Fun with Numbers
- PAT甲级 A1025.PAT RANKING
- PAT 甲级 1025 PAT Ranking
- PAT(甲级)1003
- PAT(甲级)1004
- PAT(甲级)1005
- PAT(甲级)1006
- PAT(甲级)1007
- PAT(甲级)1008
- PAT(甲级)1009
- PAT(甲级)1010
- PAT(甲级)1011
- python + appnium 做android自动化测试
- 简历
- Substrings
- hdu3577-Fast Arrangement 线段树区间覆盖
- React登陆账号之后返回之前的页面
- PAT甲级 1023
- mpc-discovery-eureka(服务注册中心)
- mysql开启远程访问权限
- 关于spark-submit 使用yarn-client客户端提交spark任务的问题
- 关于keil5.20使用过程中找不到对应flash算法的解决方案
- unbuntu下右键在终端中打开
- 面朝大海,春暖花开
- Oracle 查询表字段 注释 以及表的注释
- Spark Streaming之:Flume监控目录下文件内容变化,然后Spark Streaming实时监听Flume,然后从其上拉取数据,并计算出结果