1023. Have Fun with Numbers (20)
来源:互联网 发布:怎么建立淘宝店铺 编辑:程序博客网 时间:2024/06/05 09:28
1023. Have Fun with Numbers (20)
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:
Yes2469135798
大整数加法
#include<stdio.h>#include<string.h>int num1[10],num2[10];struct bign{int d[1000];int len;};void init(bign &a){int i;a.len=0;for(i=0;i<1000;i++){a.d[i]=0;}}bign change(char *s){bign a;init(a);int i,len=strlen(s);a.len=len;for(i=0;i<len;i++){a.d[i]=s[len-1-i]-'0';}return a;}bign add(bign a,bign b){bign c;init(c);int i,carry=0;for(i=0;i<a.len;i++){c.d[c.len++]=(a.d[i]+b.d[i]+carry)%10;carry=(a.d[i]+b.d[i]+carry)/10;}if(carry){c.d[c.len++]=carry;}return c;}void print(bign a){int i;for(i=a.len-1;i>=0;i--){printf("%d",a.d[i]);}}int main(){char s[30];scanf("%s",s);int i,len=strlen(s);for(i=0;i<len;i++){num1[s[i]-'0']++;}bign a=change(s);bign b=a;bign c=add(a,b);for(i=0;i<c.len;i++){num2[c.d[i]]++;}int flag=1;for(i=0;i<10;i++){if(num1[i]!=num2[i]){flag=0;break;}}if(flag){printf("Yes\n");}else{printf("No\n");}print(c);}
- 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)
- 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)
- 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)
- 1023. Have Fun with Numbers (20)
- hpuoj【1044】人民币问题
- 《C++多继承之菱形继承》
- 两倍屏和三倍屏中的1px处理方法
- 静态变量的初值为jvm默认的初值
- c语言中使用goto语句
- 1023. Have Fun with Numbers (20)
- Fermat Point in Quadrangle POJ 3990 四边形的费马点 数学
- android的process属性
- JS基础二
- javaScript(七)
- Spring 概述
- LintCode:链表求和
- HashMap和Hashtable的区别
- redis lua debug