Java教程

寒假刷刷算法题(16)

本文主要是介绍寒假刷刷算法题(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;
    }
  }
}

 

这篇关于寒假刷刷算法题(16)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!