(一)题目
题目描述
描述:
输入一个整数,将这个整数以字符串的形式逆序输出
程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001
输入描述:
输入一个int整数
输出描述:
将这个整数以字符串的形式逆序输出
示例1
输入
复制
1516000
输出
复制
0006151
(二)解答
(1)方法一:使用数据结构完成
import java.util.*;
public class Main{
public static void main(String[] args){
//方法一:在进行逆序输出打印时,发现这是一个先进后出的结果,由此想到了stack
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
Integer num = sc.nextInt();
//toString()方法是Object类中的方法,所以上面接收整形数需要用到包装类
//而不是直接使用int类型
String str = num.toString();
int[] buf = new int[str.length()];
Stack stack = new Stack();
for(int i=0;i<str.length();i++){
stack.push(str.charAt(i));
}
while(!stack.isEmpty()){
System.out.print(stack.pop());
}
}
}
}
(2)方法二:不需要什么数据结构,只需要打印出反序效果就行
import java.util.*;
public class Main{
public static void main(String[] args){
//方法二:
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
Integer num = sc.nextInt();
//将int型的数转换为字符串就好操作了,上一句必须用int的包装类来承接
//包装类属于对象,可以使用Object类中的toString()方法
String str = num.toString();
String[] buf = new String[str.length()];
for(int i=0;i<str.length();i++){
buf[i] = str.substring(i,i+1);
//System.out.println(buf[i]);
//千万不要在这个地方打印输出语句,就是不要输出答案无关
//自己做个测试一下就注释掉,否则会影响系统判定
}
for(int i=buf.length-1;i>=0;i--){
System.out.print(buf[i]);
}
}
}
}