当前位置:   article > 正文

P1307 数字反转 AC于2017.10.16_p1307 数字反转 java语言

p1307 数字反转 java语言

原题

noip2011普及组第一题

题目描述

给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。

输入输出格式

输入格式:

一个整数 NN

输出格式:

一个整数,表示反转后的新数。

输入输出样例

输入样例#1: 

123

输出样例#1:

321

输入样例#2:

-380

输出样例#2: 

-83

说明

数据范围

-1,000,000,000≤N≤1,000,000,000−1,000,000,000≤N≤1,000,000,000 。

 

循环写法

  1. #include<cstdio>
  2. #include<iostream>
  3. using namespace std;
  4. int main()
  5. {
  6. int n,m=0,i,j,s=0,x,a[1001];
  7. scanf("%d",&n);
  8. if(n<0)
  9. {
  10. printf("-");
  11. n=-n;
  12. }
  13. if(n==0)
  14. printf("0");
  15. while(n)
  16. {
  17. s++;
  18. a[s]=n%10;
  19. n=n/10;
  20. }
  21. x=s;
  22. for(i=1;i<=s;i++)
  23. {
  24. for(j=x;j>1;j--)
  25. a[i]=a[i]*10;
  26. m=m+a[i];
  27. x--;
  28. }
  29. printf("%d ",m);
  30. return 0;
  31. }

 

递归写法

  1. #include<cstdio>
  2. using namespace std;
  3. long long a=0,b=0,m,n;
  4. int fan(int m)
  5. {
  6. int s;
  7. s=m%10;
  8. if(m==0)
  9. return b;
  10. while(m)
  11. {
  12. a=m%10;
  13. b=b*10+a%10;
  14. return fan(m/10);
  15. }
  16. }
  17. int main()
  18. {
  19. scanf("%d",&n);
  20. printf("%d\n",fan(n));
  21. return 0;
  22. }

 

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

闽ICP备14008679号