Java中输入一个整数,反向输出这个整数,整数是不确定是多少位的

2024-11-26 06:28:00
推荐回答(4个)
回答1:

java反向输入整数的位数可以采用取余判断的方式,示例如下:

import java.util.Scanner;
public class Dd {
 public static void main(String[] args){
  Scanner in=new Scanner(System.in);
  System.out.println("请输入一个整数:");
  int n=in.nextInt();//得到输入的整数
  int sum=0;
  int i=1;
  while(n>0){//当余数不为0的时候,继续操作
   int d=n%10;  
   sum=sum*10+d;
   n=n/10;
  }
  System.out.println(sum);
 }
}

回答2:

代码引用方法如下:

import java.util.Scanner;
public class Fz {
    // 反转
    public static int fanzhuang(int num) {
        // 把整数num转成String,再转成char数组
        char[] charArr = Integer.toString(num).toCharArray();
        // 这样每个数字都变成一个char了
        // 对数组反转
        char tmp;
        // 把第1个 和 倒数1 换位置
        // 把第2个 和 倒数2 换位置
        // 一直到中间位置:所以i < charArr.length / 2,这里除了2
        for (int i = 0; i < charArr.length / 2; i++) {
            tmp = charArr[i];
            charArr[i] = charArr[charArr.length - i - 1];
            charArr[charArr.length - i - 1] = tmp;
        }
        // 重新生成字符串,再转数字
        String fStr = new String(charArr);
        return Integer.valueOf(fStr);
    }
 
    // 测试方法
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数:");
        int i = sc.nextInt();
        int n = fanzhuang(i);
        System.out.println(n);
    }
}

满意请采纳!

回答3:

import java.util.Scanner;

public class GetBackNum {

public static void main(String[] args) {

int num = 0 ;
System.out.println("Input a num : ");
Scanner c = new Scanner(System.in);
num = c.nextInt();

String s = ""+num;

//采用数字转成字符串,从后面一个一个提出来显示达到效果
for(int i = s.length() - 1 ; i >=0  ; i --){
System.out.print(s.charAt(i));
}

System.out.println();

int temp = 1 ;
int length = s.length();

//邮长度来确定被除数的最大值   
for(int i = 1 ; i < length ;  i ++){
temp *= 10;
}

int result = 0;

/*
 * 如果整数为个位数直接输出 否则按以下方法处理:
 * 用取余数方法取到最后一个数   例:123 % 100 = 23 23 % 10 = 3 
 * 取完第一个后再去掉最后一个数 再取余  例:123 / 10 = 12 12 % 10 = 2
 * 直到最高位取出来  例: 12 / 10 = 1 1 % 10 = 1
 * 最后用每一个数乘以对就的除数  例 :3 * 100 + 2 * 10 + 1 * 1 = 321
 */
if(num < 10){
System.out.print(num);
}else{
for(int i = 0 ; i < length ;  i ++){
result += getM(num,temp) * temp;
temp /= 10;
num /= 10;
}
}

System.out.println(result);

}

/**
 * 取最后一个余数
 * @param num 初始数  123
 * @param start 除数开始值  100
 * @return 最终的余数 3
 */
public static int getM(int num , int start){
while(num > 10){
num %= start;
start /= 10;
}
return num;
}

}

回答4:

把整数转换成字符串进行处理