当前位置:   article > 正文

[ZCMU OJ] 1749: 数字反转(假如不使用题目中要求的c++使用c语言实现)_给定一个整数 n,请将该数各个位上数字反转得到一个新数。新数也应满足整数的

给定一个整数 n,请将该数各个位上数字反转得到一个新数。新数也应满足整数的

Description

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(如:输入-380,输出-83)。

Input

输入共1行,一个整数N。

Output

输出共1行,一个整数,表示反转后的新数。

Sample Input

123

Sample Output

321

HINT

-1,000,000,000<=N<=1,000,000,000。

NOIP2011 普及组 reverse

上ac代码及思路。

  1. #include<stdio.h>
  2. #include<string.h>
  3. int main()
  4. {
  5. char a[20]={0};
  6. int len,i;
  7. scanf("%s",a); //读入一串数字
  8. len=strlen(a);
  9. if(a[0]=='0'&&len==1) //假设仅仅只有一个数字 0
  10. {
  11. printf("0");
  12. }
  13. if(a[0]=='-') //大前提:如果这串数字是负数
  14. {
  15. printf("%c",a[0]);
  16. if(a[len-1]=='0') //如果这个数的个位是0
  17. {
  18. while(a[len-2]=='0') //判断该数的十位/百位...是不是0,如果是,在反转过程中不输出
  19. len--;
  20. for(i=len-2;i>0;i--)//反转输出
  21. printf("%c",a[i]);
  22. printf("\n");
  23. }
  24. else // 如果这个这串数字个位不是0
  25. {
  26. for(i=len-1;i>0;i--)
  27. printf("%c",a[i]); //倒序输出
  28. printf("\n");
  29. }
  30. }
  31. else //大前提:如果这串数字是正数
  32. {
  33. if(a[len-1]=='0') //如果这个数的个位是0
  34. {
  35. while(a[len-2]=='0') //判断该数的十位/百位...是不是0,如果是,在反转过程中不输出
  36. len--;
  37. for(i=len-2;i>=0;i--)//反转输出
  38. printf("%c",a[i]);
  39. printf("\n");
  40. }
  41. else // 如果这个这串数字个位不是0
  42. {
  43. for(i=len-1;i>=0;i--)
  44. printf("%c",a[i]); //倒序输出
  45. printf("\n");
  46. }
  47. }
  48. return 0;
  49. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探索者/article/detail/60546
推荐阅读
相关标签
  

闽ICP备14008679号