我试图在java程序中找到输入数字的反向数字.是的,但我对循环内的逻辑感到困惑

  • 本文关键字:数字 循环 是的 程序 java java for-loop
  • 更新时间 :
  • 英文 :

public static void main(String[] args) {
int n;
System.out.print("Enter a number :");
Scanner sc=new Scanner(System.in);
n=sc.nextInt();
int reversednum=0;
while(n!=0){
int remainder=n%10;
reversednum=reversednum*10+remainder;
n=n/10;
}
System.out.println(reversednum);
}

输入n = 123, reversednum = 0 * 10 + 3 = 3再然后n = 12,reversednum = 0 * 10 + 2, reversednum = 0 * 10 + 1这是逻辑运行内部while循环?或reversednum = 0 * 10 + 3 = 3, n = 12;N = 1 reversednum= 32 * 10 + 1;如果第二个概念为真,则在while循环中打印reversednum,则输出32321。

首先你需要这个数字的最后一个元素,所以逻辑在下面。

public class reverseNumber {
public static void main(String[] args) {
System.out.print("Enter a number :");
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
int reverse = 0;
while (number != 0) {
int remainder = number % 10;
reverse = reverse * 10 + remainder;
number = number / 10;
}
System.out.println("The reverse of the given number is: " + reverse);
}
}

逻辑解释

1. 循环运行,直到reverse变量不为0。

while(number != 0)

2. 这给出了该变量的最后一个数字。如果我们有12345,那么在这行代码运行后,它会得到5,因为当你对10取模时,它会得到最后一个数字。

int remainder = number % 10;

3。在这个反向变量中,我们可以存储最后一个数字。

reverse = reverse * 10 + remainder;

反转的值在开始时为0,然后第一次的余数为5,因此反转的值为(reverse = 0 + 10 + 5),然后第一次反转的值为5。

4。然后将原始数字除以10,并删除该数字的最后一个索引。例如12345,然后它删除5的数字,并继续,直到数字不为0。

number = number / 10;

最新更新