Java实现回文数四种方法

Java实现回文数四种方法,第1张

Java实现回文数四种方法 干货分享 | 打印回文数的四种方法!!
  • 本文提供了四种方法来打印回文数,大家可以根据题目的要求(如:时间复杂度、运行时间、内存等限制条件)来选取合适的方法。如果题目要求打印的回文数较大,我们可以选择将数字转换为字符串的形式,这样就避免了数字过大而溢出;当然,打印的回文数没有超出Java可以表示的范围,下列的四种方法都可以实现。
  • 下面以打印四位的回文数来举例。

方法一:

直接循环一个四位数的每一位,然后判断是否满足回文数要求。(注:要输出几位的回文数就需要几重循环)

public class Main {
	public void Palindrome() {
		for (int i = 1; i < 10; i++) {
			for (int j = 0; j < 10; j++) {
				for (int x = 0; x < 10; x++) {
					for (int y = 0; y < 10; y++) {
						if (i == y && j == x) {
							System.out.println("" + i + j + x + y);
						}
					}
				}
			}
		}
	}
	public static void main(String[] args) {
		new Main().Palindrome();
	}
}

方法二:

先将原数字转换成字符串,再逆转字符串,最后判断逆转前后的字符串是否相等。

public class Main {
	public void Palindrome() {
		for(int i  = 1000;i < 10000;i++) {
			String ans = i + "";	//数字转换为字符串
			String reverse = new StringBuffer(ans).reverse().toString();//逆转字符串
			if(ans.equalsIgnoreCase(reverse)) { 	//比较两个字符串是否相等
				System.out.println(ans);
			}
		}
	}
	public static void main(String[] args) {
		new Main().Palindrome();
	}
}

方法三:

先将原数字逆转,然后判断逆转前后的数字是否相等。

public class Main {
	public void Palindrome() {
		for(int i  = 1000;i < 10000;i++) {
			int temp = i;
			int reverse = 0;
			while(temp != 0) {
				int remain = temp % 10;
				temp /= 10;
				reverse = reverse * 10 + remain;
			}
			if(reverse == i) { 	
				System.out.println(reverse);
			}
		}
	}
	public static void main(String[] args) {
		new Main().Palindrome();
	}
}

方法四:

将一个四位数的每一位存放在一个数组中,再依次取数组的两端元素并判断是否相等。

public class Main {
	public void Palindrome() {
		for(int i  = 1000;i < 10000;i++) {
			String temp = i + "";
			char[] str = temp.toCharArray();//将字符串以单个字符存放在数组中
			if(str[0] == str[3] && str[1] == str[2]) {
				for(int j = 0;j < str.length;j++) {
					System.out.print(str[j]);
				}
				System.out.println();
			}
		}
	}
	public static void main(String[] args) {
		new Main().Palindrome();
	}
}

补充:如需要降低循环的次数,进行如下判断
1、数字是否为负数
2、数字是否以0结尾

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

原文地址: http://outofmemory.cn/zaji/5158842.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-18
下一篇 2022-11-18

发表评论

登录后才能评论

评论列表(0条)

保存