PAT 1023. Have Fun with Numbers (20)

来源:互联网 发布:如何关淘宝店铺 编辑:程序博客网 时间:2024/05/16 16:01

题目的意思是检测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;}


0 0
原创粉丝点击