现在的位置: 首页 > 综合 > 正文

浙大PAT 1023题 1023. Have Fun with Numbers

2018年05月26日 ⁄ 综合 ⁄ 共 681字 ⁄ 字号 评论关闭
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
//no strrev in pat's compiler 
void mystrrev(char* str){
     char tmp[25];
     int i,j;
     strcpy(tmp,str);
     j=strlen(str);
     for(i=0;tmp[i]!='\0';i++){
         j--;
         str[j]=tmp[i];  
     }
}
int main(){
  char str[25],db[25];
  int a[10],b[10];
  int i,j;
  scanf("%s",str);
  mystrrev(str);
  int nxt=0;
  for(i=0;str[i]!='\0';i++){
       db[i]=((str[i]-'0')*2+nxt)%10+'0';    
       nxt=((str[i]-'0')*2)/10;                  
   }
   if(nxt!=0){
      db[i]='0'+nxt;        
      db[i+1]='\0';        
   }
   else db[i]='\0';
   mystrrev(db);
   for(i=0;i<10;i++){
      a[i]=0;
      b[i]=0;               
   }
   for(i=0;str[i]!='\0';i++){
       a[str[i]-'0']++;               
   }
   for(i=0;db[i]!='\0';i++){
       b[db[i]-'0']++;              
   }
   for(i=0;i<10;i++){
      if(a[i]!=b[i])  break;             
   }
   if(i==10) printf("Yes\n");
   else printf("No\n");
   printf("%s\n",db);
  system("pause");
  return 0;
}

抱歉!评论已关闭.