题目的意思是检测n与n*2是否都是由一样的数字组成 排列顺序不同
无奈渣英语理解不了这意思
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<vector>
#include<map>
#include<stack>
#include<queue>
using namespace std;
void check(char str[],int j ,int a[])
{
for(int i=0;i<j;i++)
a[str[i]-'0']++;
}
int check1(int a[],int c[])
{
for(int i=0;i<10;i++)
if(a[i]!=c[i])
return 0;
return 1;
}
int main()
{
int n,b;
char str1[22],str2[22];
scanf("%s",str1);
int j=0;
int t=0;
int a[10]={0};
int c[10]={0};
int i;
for(i=strlen(str1)-1;i>=0;i--)
{ str2[j++]=(((str1[i]-'0')*2)+t)%10+'0';
t=((str1[i]-'0')*2+t)/10;
if(i==0&&t>0)
{
str2[j++]=t+'0';
}
}
check(str2,j,a);
check(str1,strlen(str1),c);
if(check1(a,c))
printf("Yes\n");
else
printf("No\n");
for(i=j-1;i>=0;i--)
printf("%c",str2[i]);
printf("\n");
return 0;
}