如果一個數(shù)與它的反轉(zhuǎn)數(shù)相等,則該數(shù)為回文數(shù)。輸入一個數(shù),判斷是否為回文數(shù)。
創(chuàng)新互聯(lián)建站專注于蓋州企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站建設(shè),購物商城網(wǎng)站建設(shè)。蓋州網(wǎng)站建設(shè)公司,為蓋州等地區(qū)提供建站服務(wù)。全流程按需求定制設(shè)計(jì),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)輸入格式:
輸入一個數(shù)
輸出格式:
若XX是回文數(shù),則輸出“XX 是回文數(shù)”,若不是,則輸出“XX 不是回文數(shù)”
輸入樣例1:
6234326
輸出樣例1:
6234326 是回文數(shù)
輸入樣例2:
123456
輸出樣例2:
123456 不是回文數(shù)
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
if(isPalindrome(n)==false)
System.out.printf("%d 不是回文數(shù)",n);
else System.out.printf("%d 是回文數(shù)",n);
}
public static boolean isPalindrome(int x) {
String s = new StringBuilder(x+"").reverse().toString();
return s.equals(x+"");
}
}
2. 題解判斷一個數(shù)是否回文數(shù),實(shí)際上是問一個字符串是不是回文串。所以,首先需要將數(shù)字轉(zhuǎn)化為字符串。
x+""
一個回文串是對稱的,也就是說這個字符串與它的逆轉(zhuǎn)后的字符串是一樣的。比如,如果一個字符串是"abccbb",那么它逆轉(zhuǎn)后的結(jié)果是"bbccba",很明顯,二者的結(jié)果是不同的;如果一個字符串是"abccba",那么它逆轉(zhuǎn)后的結(jié)果是"abccba",很明顯,二者的結(jié)果是相同的。所以只要比較二者是否相等就可以判斷這個數(shù)是不是回文串了。
本代碼中使用了StringBuider對象,為什么不用String對象呢?
下面看一看封裝字符串的三個對象。
- String
對象一旦創(chuàng)建,其值是不能修改的,如果要修改,需重新開辟內(nèi)存空間來存儲修改之后的對象;而StringBuffer和StringBuilder對象的值是可以被修改的。
- StringBuffer
線程比較安全,在多線程系統(tǒng)中可以保證數(shù)據(jù)同步,但是效率比較低;而StringBuilder 沒有實(shí)現(xiàn)同步,線程不安全,在多線程系統(tǒng)中不能使用 StringBuilder,但是效率比較高。
- StringBuilder
如果需要對字符串進(jìn)行頻繁的修改,使用String會造成內(nèi)存空間的浪費(fèi);當(dāng)需要考慮線程安全的場景下使用 StringBuffer,如果不需要考慮線程安全,追求效率的場景下可以使用 StringBuilder。
所以,最好用StringBuilder對象。
字符串封裝完畢后對字符串轉(zhuǎn)置,然后再用toString方法返回。
StringBuilder(x+"").reverse().toString();
比較
s.equals(x+"")
3. 其它方法
- 由于回文串是對稱的,所以可以將這個數(shù)存儲到數(shù)組中,利用對稱性一個個對比兩端的數(shù)子大小。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧