我想编写一个程序来反转在数组中输入的所有整数但是我在这里显示的代码没有正常工作。这是我的代码:
import java.util.*;
import java.lang.*;
import java.io.*;
class GFG {
public static void main (String[] args) throws Exception {
//code
Scanner ss=new Scanner(System.in);
int[] arr = new int[31];
int T=ss.nextInt();
int rem,p=0;
for(int i=1;i<=T;i++){
int a=ss.nextInt();
if(a<=1000000000){
while(a!=0){
rem=a%10;
p=p*10+rem;
a=a/10;
}
System.out.println(p);
} else
System.out.println("wrong input");
}
}
}
输入
2
56
78
预期产出:
65
87
实际输出:
65
6578
有什么问题?
答案 0 :(得分:0)
可能的解决方案可能是
if(a<=1000000000){
p=0; // reinitialize p
while(a!=0){
rem=a%10;
p=p*10+rem;
a=a/10;
}
为了更好地理解,只需添加以下行System.out.println("P is :"+ p);
,您就会明白为什么需要p=0;
。
if(a<=1000000000){
System.out.println("P is :"+ p);
while(a!=0){
rem=a%10;
p=p*10+rem;
a=a/10;
}
输出:
2
65
P is :0
56
78
P is :56
5687
答案 1 :(得分:0)
可能你只是在学习如何做事;因此,你想要解决这个问题&#34;数学和#34;,但这里有一个不同的视角。
您似乎只想反转任意数字内的数字;你把它视为数学问题。但人们可以将其视为字符串操作问题;它允许您使用现有的功能来解决问题:
int originalNumber = ....
String originalNumberAsString = Integer.toString(originalNumber);
String reversedNumberAsString = new StringBuilder(originalNumberAsString).reverse().toString();
int reversedNumber = Integer.parseInt(reversedNumberAsString);
请注意:此处无需检查输入的大小;但你可能应该检查&gt; = 0(或者在你的情况下为负数做适当的事情)。
答案 2 :(得分:0)
如果由同行审核,您的代码中存在几个错误(可以说是)。您正在尝试打印未重新初始化的p
。在这个答案中删除了代码中很多未使用的变量。
a <= 1000000000
是为了确保输入的值在int
范围内。 Java在Integer包装器类Integer.MAX_VALUE
(2^31 - 1
)reverse(int num)
从包中导入所有类是not recommended,而只导入代码中使用的那些类。
import java.util.Scanner;
公共类GFG {
public static void main(String[] args) throws Exception {
Scanner ss = new Scanner(System.in);
int T = ss.nextInt();
for (int i = 1; i <= T; i++) {
int a = ss.nextInt();
if (a <= Integer.MAX_VALUE) {
a = reverse(a);
System.out.println(a);
} else {
System.out.println("wrong input");
}
}
}
private static int reverse(int num) {
int reverse = 0;
while( num != 0 ) {
reverse = reverse * 10;
reverse = reverse + num % 10;
num = num/10;
}
return reverse;
}
}
另外,如果你看看GhostCat将数字转换为String并将其反转的答案,那么负数的方法就会失败。
示例:当用户输入为 -51 时,输出为 15 -
但是,行业中通常会将某些long
值存储为String
。一个这样的例子是信用卡/借记卡号