寒假刷刷算法题(16)

数字反转

题目描述:

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

输入格式

输入共 11 行,一个整数 NN。

输出格式

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

数据范围

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

输入样例1

123

输出样例1

321 

输入样例2

-380 

输出样例2

-83 

闲聊:

  • 这一题关键是对负数的处理和对尾数为0的处理
  • 可以考虑使用数组存储数字,然后对数组反转,判断位数为0

代码如下

#include<stdio.h>
main()
{
  int n,i,j=0,flag=0;
  int result[14];
  scanf("%d",&n);
  if(n<0)
  {
    printf("-");
    n=-n;
  }
  while(n!=0)
  {
    result[j]=n%10;
    j++;
    n/=10;
  }
  for(i=0;i<j;i++)
  {
    if(result[i]==0&&flag==1)
    {
      printf("%d",result[i]);
    }
    else if(result[i]!=0)
    {
      printf("%d",result[i]);
      flag=1;
    }
  }
}

 

上一篇:2020年,Flutter-和-React-Native-谁主沉浮-,这份1307页Android面试全套真题解析


下一篇:速度收藏--16个好玩的深度学习在线应用推荐