关闭

PAT 1023. Have Fun with Numbers (20)

标签: PAT
153人阅读 评论(0) 收藏 举报
分类:

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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:10968次
    • 积分:670
    • 等级:
    • 排名:千里之外
    • 原创:56篇
    • 转载:8篇
    • 译文:0篇
    • 评论:5条
    最新评论