輸入一個整數,將這個整數以字串的形式逆序輸出
阿新 • • 發佈:2018-11-05
題目描述
描述:
輸入一個整數,將這個整數以字串的形式逆序輸出
程式不考慮負數的情況,若數字含有0,則逆序形式也含有0,如輸入為100,則輸出為001
輸入描述:
輸入一個int整數
輸出描述:
將這個整數以字串的形式逆序輸出
輸入例子:
1516000
輸出例子:
0006151
我覺得題目不難,我做的方法是不是不太好?感覺不精練。
但是我又想到,題目說了要是字串的形式逆序,如果不要求字串的話,應該直接每次while都print一個數字,程式碼會更簡潔吧。
然後過程中還是出了兩個小錯誤:
1、
while(flag){
st.add(""+i%10);
i=i/10;
if(i==0){
flag=false;
}
}
這個flag的判斷一定要在i=i/10;之後,不然就會多一個0,別問我怎麼知道的....
2、
/* for(int j=st.size()-1;j>=0;j--){
re=re+st.get(j);
}*/
for(int j=0;j<=st.size()-1;j++){
re=re+st.get(j);
}
因為新增的時候就是逆序了,所以不要倒序輸出啦!! 【咦這裡是不是其實可以直接處理String.....0.0】
-
import java.util.Scanner;
-
import java.util.ArrayList;
-
public
class Main{
-
public static void main(String args[]){
-
Scanner sc=
new Scanner(System.in);
-
long num=sc.nextInt();
-
System.out.println(Fun(num));
-
}
-
-
public static String Fun(long num){
-
String re=
"";
-
long i=num;
-
ArrayList<String> st=
new ArrayList<String>();
-
boolean flag=
true;
-
-
while(flag){
-
-
st.add(
""+i%
10);
-
i=i/
10;
-
if(i==
0){
-
flag=
false;
-
}
-
}
-
-
/* for(int j=st.size()-1;j>=0;j--){
-
re=re+st.get(j);
-
}*/
-
for(
int j=
0;j<=st.size()-
1;j++){
-
re=re+st.get(j);
-
}
-
return re;
-
-
}
-
-
}
走,看看大神怎麼做的:
1、用StringBuffer.....哎..!!
-
連結:https:
//www.nowcoder.com/questionTerminal/ae809795fca34687a48b172186e3dafe
-
來源:牛客網
-
-
import java.util.*;
-
public
class Main {
-
public static void main(String[] args){
-
Scanner scan =
new Scanner(System.in);
-
String str = scan.nextLine();
-
StringBuffer sb =
new StringBuffer(str);
-
sb.reverse();
-
System.out.println(sb.toString());
-
}
-
-
}
2、跟我想法差不多的簡潔版:
-
連結:https:
//www.nowcoder.com/questionTerminal/ae809795fca34687a48b172186e3dafe
-
來源:牛客網
-
-
import java.util.*;
-
public
class Main{
-
public static void main(String []args){
-
Scanner sc =
new Scanner(System.in);
-
int num = sc.nextInt();
-
int i=
0;
-
String res=
"";
-
-
while(num!=
0){
-
int t1=num%
10;
-
int t2=num/
10;
-
res=res+String.valueOf(t1);
-
i++;
-
num=t2;
-
}
-
System.out.println(res);
-
}
-
}