1023 Have Fun with Numbers
因为最多有20个字符,int和long long都不行,所以只能用字符串操作。水题~
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<iostream> #include<algorithm> #include<string.h> #define maxn 25 using namespace std; typedef long long ll; char s1[maxn]; int s2[maxn]; int a[10]; int main() { memset(s2,0,sizeof(s2)); memset(a,0,sizeof(a)); cin>>s1; int len=strlen(s1); for(int i=0;i<len;i++) { a[s1[i]-'0']++; } int r=0,p=0,tmp; for(int i=len-1;i>=0;i--) { tmp=(s1[i]-'0')*2+r; s2[p++]=tmp%10; r=tmp/10; if(i==0&&r!=0) s2[p++]=r; } for(int i=0;i<p;i++) { a[s2[i]]--; } int flag=1; for(int i=0;i<=9;i++) { if(a[i]!=0) { flag=0; break; } } if(flag) cout<<"Yes"<<endl; else cout<<"No"<<endl; for(int i=p-1;i>=0;i--) cout<<s2[i]; cout<<endl; }