用Java的递归方法写一个程序,判断一个数是否是回文数,最好能用在Eclipse

用Java的递归方法写一个程序,判断一个数是否是回文数,最好能用在Eclipse,第1张

非要递归么,

public static void main(String[] args) throws Exception {

String string="1234";

StringBuilder stringBuilder=new StringBuilder(string);

if(stringBuilderreverse()toString()equals(string))

Systemoutprintln("回文");

else

Systemoutprintln("不是回文");

}

这段代码是判断输入的字符串是不是回文。

所谓回文,是指诸如:abcba这样的字符串,也就是说第一个字母也最后一个字母相同,第二个字母与倒数第二个字母相同,以些类推。

这段代码的关键是下面这几句:

while (j <= (i / 2) -1 && wordcharAt(j) == wordcharAt(i - j - 1))

j++;

这个就是从字符串的第一个字母开始逐一判断是否满足回文的要求,如果所有的都满足,那么,这个循环结束时,j = (i/2),这样就可以用下面的条件语句来判断是否为回文了。

下面是这段代码的注释,希望能帮到你~!

import javautilScanner;

public class PalindromeV1 {

public static void main(String[] args) {

Scanner sc = new Scanner(Systemin);//接受从控制台的输入

Systemoutprintln("输入一个字符串: ");

String word = scnext();//将用户输入的字符串保存到word中

int i = wordlength();//获取输入的字符串的长度,保存到i中

int j = 0;//初始化变量j

//从字符串的第一个字母开始逐一判断是否满足回文的要求,如果所有的都满足,那么,这个循环结束时,j = (i/2)

while (j <= (i / 2) - 1 && wordcharAt(j) == wordcharAt(i - j - 1))

j++;

//判断是否为回文

if (j == i / 2)

Systemoutprintln("输入字符串是回文");

else

Systemoutprintln("输入字符串不是回文");

}

}

老大,

首先,这一行

int charNumbers=slenght();

slength(),不是lenght();

sgetChars(),不是sgetchar

最重要的一点,你把main方法写在类定义的外面……

public class d

{

public static String reverse(String s)

{

int charNumbers=slength();

char[] chars=new char[charNumbers];

sgetChars(0,charNumbers,chars,0);

String result=" " ;

for(int i=charNumbers-1;i>=0;i--)

{

result=result+chars[i];}

return result;

}

public static void main(String args[])

{

String word ="noon";

if(wordequals(reverse(word)))

{Systemoutprintln(word+"是一个回文单词!");}

else

{Systemoutprintln(word+"不是一个回文单词!");}

}

}

假设这个数是变量a,那么:

String s1 = a+"";//转成字符串先

String s2 = "";

for(int i=s1length()-1;i>=0;i--){//把s1反序,用s2接收

s2 += s1substring(i,i+1);

}

if(s1==s2){

Systemoutprint(a+"是回文数");

}else{

Systemoutprint(a+"不是回文数");

}

public boolean isPalindrome(char[] text){

boolean flag = true ;

int i = 0;

int textLen = 0 ;

if (null != text){

textLen = textlength ;

}else{

return false ;

}

int middle = (textLen-1)/2 ;

for(i = 0; i <= middle ; i++){

if(text[i] != text[textLen-i-1]){

flag = false ;

break ;

}

}

return flag ;

}

import javautilScanner;

public class PalindromicNumber {

public static void main(String[] args) {

Systemoutprintln("一个正整数n(0 < n <= 100000 )");

Scanner sc = new Scanner(Systemin);

int n = scnextInt();

int count = 0;

for(int i=1;i<=n;i++){

if(isPalindromicNumber(i)){

count++;

}

}

scclose();

Systemoutprintln("1~"+n+"之间总共"+count+"个回文数");

}

private static boolean isPalindromicNumber(int n){

String num = StringvalueOf(n);

if(numlength()!=1){

char[] temp = numtoCharArray();

for(int i=0;i<templength/2;i++){

if(temp[i]!=temp[templength-1-i]){

return false;

}

}

}

//Systemoutprintln(n+"是回文数");

return true;

}

}

已经测试过,符合你的要求,代码如下:望采纳!

import javaioBufferedReader;

import javaioIOException;

import javaioInputStreamReader;

public class numberCom {

public static void main(String args[]) throws IOException{

//创建数据量对象

BufferedReader br = new BufferedReader(new InputStreamReader(Systemin));

Systemoutprintln("请输入数字:");

//从键盘读取数据

int number =IntegerparseInt(brreadLine()trim());

numberCom n = new numberCom();

if(number==nisPalindrome(number)){

Systemoutprintln("是回文数");

}else{

Systemoutprintln("不是回文数");

};

}

public int isPalindrome(int x){

String result = "";

int n = 10;

int y;

int z = 0;

for(int i=0;i<5;i++){

y = x%n-z;

z = z+y;

y = y10/n;

result = result+y;

n = n10;

}

return IntegerparseInt(result);

}

}

以上就是关于用Java的递归方法写一个程序,判断一个数是否是回文数,最好能用在Eclipse全部的内容,包括:用Java的递归方法写一个程序,判断一个数是否是回文数,最好能用在Eclipse、java 的一段监测回文代码、用JAVA编写程序检查是否为回文单词等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/10216443.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存