twentySeven729 2021-10-30 22:49 采纳率: 100%
浏览 38
已结题

想问一下将一个整数逆序输出时,整数前有负号或是整数结尾有0(0逆序输出后要省略)这种情况怎么处理

题目描述
将一个多位数反转,前导零不输出,不改变正负性。

输入解释
输入共一行,一个整数N

输出解释
输出共一行,表示反转后的整数。

输入样例
-380
输出样例
-83
提示
对于100%的数据,-10^10<=N<=10^10

//这是我目前写的源代码
import java.util.Scanner;

public class 逆序数 {

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    int x = in.nextInt();
    String xo = Integer.toString(x);
    char a[] = xo.toCharArray();

    for (int i = xo.length() - 1; i >= 0; i--) {
        System.out.print(a[i]);
    }
}

}

  • 写回答

1条回答 默认 最新

  • a5156520 2021-10-30 23:32
    关注

    稍微改了下,你看看满足要求不:

    
    public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int x = in.nextInt();
            String xo = Integer.toString(x);
            char a[] = xo.toCharArray();
            char a2[] = new char[xo.length()];
            
            int j = 0;
            if('-'==a[0]||'+'==a[0])
                a2[j++]=a[0];
            boolean zero = true;
            for (int i = xo.length() - 1; i >= 0; i--) {
                if('-'==a[i]||'+'==a[i]) {
                    continue;
                }
                if(a[i]!='0') {
                    zero = false;
                    a2[j++]= a[i];
                }
                if(a[i]=='0'&&zero==false) {
                    a2[j++] = a[i];
                }
                if(a[i]=='0'&&zero==true) {
                    continue;
                }
            }
            
            for(int i =0 ;i<j;i++) {
                System.out.print(a2[i]);
            }
        }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月8日
  • 已采纳回答 10月31日
  • 创建了问题 10月30日