A1023. Have Fun with Numbers (20)
2015-08-23 09:43
441 查看
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
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int main(){ bool flag = 1; //表示符合要求 int hashTable[256] = {0}; char str1[22],str2[22]; scanf("%s",str1); int len1 = strlen(str1); int len2 = len1; //len2必须通过len1来求,否则会输出额外的东西? reverse(str1,str1+len1); //反转字符串 for(int i = 0;i < len1;i++) hashTable[str1[i]]++; int carry = 0; for(int i = 0;i < len1;i++){ str2[i] = ((str1[i]-'0')*2+carry)%10+'0'; carry = ((str1[i]-'0')*2+carry)/10; } if(carry){ flag = 0; len2++; str2[len1] = carry+'0'; } else { for(int i = 0;i < len1;i++) hashTable[str2[i]]--; for(int i = 0;i < len1;i++) if(hashTable[str2[i]]) flag = 0; } if(flag) printf("Yes\n"); else printf("No\n"); for(int i = len2-1;i >= 0;i--) printf("%c",str2[i]); printf("\n"); return 0; }
相关文章推荐
- 数学模板 - 数论基础
- JQuery随笔
- Solr查询语法总结
- Android学习笔记(一)Android应用程序的组成部分
- oc常用字符串方法,数组方法,字典方法整理大全
- jQuery和CSS制作霓虹灯文字效果
- Hadoop实战之HBase
- 二叉树:已知前序和中序,求后序
- eclipse启动tomcat后无法访问项目
- 深入分析 Java 中的中文编码问题
- 搭建页游框架
- 新秀nginx源代码分析数据结构篇(两) 双链表ngx_queue_t
- 5种JavaScript和CSS交互的方法
- PowerShell 常用命令
- hdoj 2039 三角形
- 联合国会员国列表 193个
- Android 使用开源库加载网络图片
- [NOIP2007]统计数字
- UVA 11859 - Division Game(Nim游戏)
- Deep learning:二十(无监督特征学习中关于单层网络的分析)