PTA(Advanced Level) 1023:Have Fun with Numbers(C语言实现)

红太狼 2023-05-22 22:30 135阅读 0赞

PTA(Advanced Level) 1023:Have Fun with Numbers(C语言实现)

  1. #include <stdio.h>
  2. #include <string.h>
  3. void Double(char s[])
  4. {
  5. int i,c=0,k=strlen(s);
  6. for(i=k-1; i>=0; i--,k--)
  7. {
  8. s[k]=((s[i]-'0')*2+c)%10+'0';//还是以s保存
  9. c=((s[i]-'0')*2+c)/10;
  10. }
  11. if(c>0)//最后有进位,放在第一位
  12. s[k]=c+'0';
  13. else//没有进位,后面的数往前挪
  14. strcpy(s,s+1);
  15. }
  16. int main()
  17. {
  18. char num[22]="";
  19. int i,a[10]={ 0};
  20. gets(num);
  21. for(i=0; num[i]; i++)
  22. a[num[i]-'0']++;//记录每一个数出现的次数
  23. Double(num);//乘以2
  24. for(i=0; num[i]; i++)
  25. {
  26. a[num[i]-'0']--;
  27. if(a[num[i]-'0'] < 0)//出现的次数不相等
  28. break;
  29. }
  30. if(num[i])
  31. printf("No\n");
  32. else
  33. printf("Yes\n");
  34. printf("%s",num);
  35. return 0;
  36. }

发表评论

表情:
评论列表 (有 0 条评论,135人围观)

还没有评论,来说两句吧...

相关阅读