java迴文
⑴ java 尋找全部迴文
packagetest;
publicclassSubPalindrome
{
privatestaticvoidpalindrome(intn,Stringstr)
{
intstart=0;
intend=start+n;
if(end>str.length())
{
return;
}
while(end<=str.length())
{
Stringline=str.substring(start,end);
if(line.equals(newStringBuilder(line).reverse().toString()))
{
System.out.println("["+line+"]at"+str.indexOf(line));
}
end=++start+n;
}
palindrome(++n,str);
}
publicstaticvoidmain(String[]args)
{
palindrome(4,"akaakarabgnadabarak");
}
}
⑵ java判斷迴文字元串幾種簡單的實現
import java.util.Scanner; public class Tststriu { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("輸入字元串的個數:"); int n = sc.nextInt(); String[] a = new String[n]; for(int i = 0;i < n;++i){ System.out.println("輸入第"+(i+1)+"個字元串:"); a[i] = sc.next(); } int sum = 0; String max = null; for(int i = 0;i < n;++i){ if(isString(a[i])) sum++; if(bijao(a[i],max)){ max = a[i]; } } System.out.println("迴文字元串個數是:"+sum); System.out.println("最大字元串是:"+max); } public static boolean isString(String s){ int n = s.length(); int i=0; for(i=0; i < n/2; i++) { if(s.charAt(i)!= s.charAt(n-1-i)) break; } if(i>=n/2) return true; else return false; } public static boolean bijao(String s1,String s2){ if(s2 == null) return true; int n = Math.min(s1.length(),s2.length()); for(int i = 0; i< n;++i){ if((int)s1.charAt(i)>(int)s2.charAt(i)) return true; else return false; } if(n==s1.length()) return false; else return true; } }
⑶ 如何用java判斷迴文數
System.out.println("請輸入...");
Scanner in = new Scanner(System.in);
String number = in.next();
System.out.println("您輸入的是"+number);
boolean flag = true;
for(int i=0;i<number.trim().length()/2;i++){
//把索引為i位置的字元和它對稱索引位置的字元相比,看是否一樣
if(!String.valueOf(number.charAt(i)).equals(String.valueOf(number.charAt(number.trim().length()-i-1)))){
flag = false;
break;
}
}
if(flag){
System.out.println("它是迴文數");
}else{
System.out.println("它不是迴文數");
}
沒有加上對輸入數據的合法性校驗,如果有需要的話,你可以自行對number進行檢查,例如校驗number是不是數字,是不是負數等等
⑷ 迴文數個數,Java編程
importjava.util.Scanner;
publicclassPalindromicNumber{
publicstaticvoidmain(String[]args){
System.out.println("一個正整數n(0<n<=100000)");
Scannersc=newScanner(System.in);
intn=sc.nextInt();
intcount=0;
for(inti=1;i<=n;i++){
if(isPalindromicNumber(i)){
count++;
}
}
sc.close();
System.out.println("1~"+n+"之間總共"+count+"個迴文數");
}
(intn){
Stringnum=String.valueOf(n);
if(num.length()!=1){
char[]temp=num.toCharArray();
for(inti=0;i<temp.length/2;i++){
if(temp[i]!=temp[temp.length-1-i]){
returnfalse;
}
}
}
//System.out.println(n+"是迴文數");
returntrue;
}
}
⑸ JAVA中的迴文是什麼一回是
"迴文數"是一種數字.如:98789, 這個數字正讀是98789,倒讀也是98789,正讀倒讀一樣,所以這個數字
就是迴文數.
任意某一個數通過以下方式相加也可得到
如:29+92=121 還有 194+491=685,586+685=1271,1271+1721=2992
不過很多數還沒有發現此類特徵(比如196,下面會講到)
另外個別平方數是迴文數
1的平方=1
11的平方=121
111的平方=12321
1111的平方=1234321
。
。
。
。
依次類推
3×51=153
6×21=126
4307×62=267034
9×7×533=33579
上面這些算式,等號左邊是兩個(或三個)因數相乘,右邊是它們的乘積。如果把每個算式中的「×」和「=」去掉,那麼,它們都變成迴文數,所以,我們不妨把這些算式叫做「迴文算式」。還有一些迴文算式,等號兩邊各有兩個因數。請看:
12×42=24×21
34×86=68×43
102×402=204×201
1012×4202=2024×2101
不知你是否注意到,如果分別把上面的迴文算式等號兩邊的因數交換位置,得到的仍是一個迴文算式,比如:分別把「12×42=24×21」等號兩邊的因數交換位置,得到算式是:
42×12=21×24
這仍是一個迴文算式。
還有更奇妙的迴文算式,請看:
12×231=132×21(積是2772)
12×4032=2304×21(積是48384)
這種迴文算式,連乘積都是迴文數。
四位的迴文數有一個特點,就是它決不會是一個質數。設它為abba,那它等於a*1000+b*100+b*10+a,1001a+110b。能被11整除。
六位的也一樣,也能被11整除
還有,人們藉助電子計算機發現,在完全平方數、完全立方數中的迴文數,其比例要比一般自然數中迴文數所佔的比例大得多。例如11^2=121,22^2=484,7^3=343,11^3=1331,11^4=14641……都是迴文數。
人們迄今未能找到五次方,以及更高次冪的迴文數。於是數學家們猜想:不存在nk(k≥5;n、k均是自然數)形式的迴文數。
在電子計算器的實踐中,還發現了一樁趣事:任何一個自然數與它的倒序數相加,所得的和再與和的倒序數相加,……如此反復進行下去,經過有限次步驟後,最後必定能得到一個迴文數。
這也僅僅是個猜想,因為有些數並不「馴服」。比如說196這個數,按照上述變換規則重復了數十萬次,仍未得到迴文數。但是人們既不能肯定運算下去永遠得不到迴文數,也不知道需要再運算多少步才能最終得到迴文數。
⑹ JAVA 迴文的正確演算法
java中的char是4個位元組,可以表示任何文字、符號,所以你的擔心是多餘的,不會出現亂碼
⑺ java實現1000以內迴文素數(質數)
publicclass${
publicstaticvoidmain(String[]args){
for(inti=1;i<=1000;i++){
if(!check(i)){
continue;
}
if(huiweishu(i)){
System.out.println(i);
}
}
}
privatestaticbooleancheck(intnum){
intsqrt=(int)Math.sqrt(num);
for(intj=2;j<sqrt+1;j++){
if(num%j==0){
returnfalse;
}
}
returntrue;
}
privatestaticbooleanhuiweishu(inti){
inta;
if(i<99){
a=i/10;
}else{
a=i/100;
}
returna==i%10;
}
}
11
101
131
151
181
191
313
353
373
383
727
757
787
797
919
929
⑻ java 迴文
String s = "abbcbcbba";
StringBuffer sbuff=new StringBuffer(s);
String rs=sbuff.reverse().toString();//倒序一個字元串
System.out.println(s.equals(rs));
***********************
//這個演算法也行,只是程序問題太多,改了一下
//HuiWen.java //注意大小寫
public class HuiWen{//有入口方法和程序要想能運行必須用 public 修飾
int i,j;
String s1,s2;
public HuiWen(String es1,String es2){ //構造器
s1 = es1;
s2 = es2;
}
public /*String*/ boolean judge(){ //判斷字元串是否為迴文,你的返回值有什麼意義? 改成boolean或 void可能更合適
String es1=" ";
String es2=" ";
for(i=0;i<s1.length();i++){
char c = s1.charAt(i);
es1+=c;
}
//return es1;//這里用了個返回語句,程序就不能往下執行了,要注釋掉
for(int j=(s2.length()-1);j>=0;j--){//j 未聲明 for(int j
char d = s2.charAt(j);
es2+=d;
}
//return es2;//這里用了個返回語句,程序就不能往下執行了,要注釋掉
if (es1.equals(es2)){
System.out.println("字元串es1是迴文:"+es1);
return true;
}
else{
System.out.println("字元串es1不是迴文!");
return false;
}
}
public static void main(String[] args){
//String s1="gabag";
//String s2="gabag";
HuiWen h1=new HuiWen("gabag", "gabag");
// Huiwen h2=new Huiwen("s2");
h1.judge();
//h2.judge();
}
}
⑼ 【JAVA】:迴文數字
importjava.util.Scanner;
publicclassMain{
staticfinalintstart=10001;
staticfinalintend=999999;
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
intt;
StringBuildersb;
intsum;
booleansu;
while(sc.hasNextInt()){
su=false;
t=sc.nextInt();
for(inti=start;i<=end;i++){
sum=0;
sb=newStringBuilder(String.valueOf(i));
if(sb.toString().equals(sb.reverse().toString())){
for(intj=0;j<sb.length();++j){
sum+=sb.charAt(j)-'0';
}
if(sum==t){
su=true;
System.out.println(i);
}
}
}
if(!su){
System.out.println(-1);
}
}
sc.close();
}
}
如果不能AC,優化一下: 對每個i,轉為(字元或整數)數組,對數組從索引0到長度的一半遍歷,判斷對稱位置是否相同,且各位數字和是否符合要求.
⑽ java編程迴文串
importstaticjava.lang.System.*;
importjava.util.Scanner;
publicclassProgram{
publicstaticvoidmain(String[]args){
Scannerscanner=newScanner(in);
System.out.print("請鍵入字元串:");
Stringvalue=scanner.next();
booleanisSame=true;
scanner.close();
for(inti=0;i<value.length();i++){
intj=value.length()-i-1;
if(i>=j)break;
if(value.charAt(i)!=value.charAt(j)){
isSame=false;
break;
}
}
if(isSame)out.println(value+"是迴文串");
elseout.println(value+"不是迴文串");
}
}