试图找到最大的回文,变量没有更新[重复](Trying to find largest palindrome, variable not updated [duplicate])
这个问题在这里已有答案:
如何比较Java中的字符串? 23个答案所以我试图找到2个3位数字的最大产品,这是一个回文。 这是我的代码:
class project_euler4 { public static int largest_palindrome = 0; public static boolean isPalindrome(int number) { String original = Integer.toString(number); String reversed = new StringBuffer(original).reverse().toString(); return (original == reversed) ? true : false; } public static void main(String[] args) { for (int i = 100; i < 1000; i++) { for (int j = 100; j < 1000; j++) { int candidate = i * j; if (isPalindrome(candidate) && candidate > largest_palindrome) { largest_palindrome = candidate; } } } System.out.println("The largest palindrome made from the product of 2 3-digit numbers is " + largest_palindrome); } }当我编译并运行时,我得到:
The largest palindrome made from the product of 2 3-digit numbers is 0因此,出于某种原因,当产品是回文时,我的largest_palindrome变量没有得到更新。 我怀疑它与我的isPalindrome()函数有关,但我不确定。
有任何想法吗?
感谢Mariogs的帮助
This question already has an answer here:
How do I compare strings in Java? 23 answersSo I'm trying to find the largest product of 2 3-digit numbers that is a palindrome. Here's my code:
class project_euler4 { public static int largest_palindrome = 0; public static boolean isPalindrome(int number) { String original = Integer.toString(number); String reversed = new StringBuffer(original).reverse().toString(); return (original == reversed) ? true : false; } public static void main(String[] args) { for (int i = 100; i < 1000; i++) { for (int j = 100; j < 1000; j++) { int candidate = i * j; if (isPalindrome(candidate) && candidate > largest_palindrome) { largest_palindrome = candidate; } } } System.out.println("The largest palindrome made from the product of 2 3-digit numbers is " + largest_palindrome); } }When I compile and run, I get:
The largest palindrome made from the product of 2 3-digit numbers is 0So for some reason, my largest_palindrome variable isn't getting updated when a product is a palindrome. I suspect it has something to do with my isPalindrome() function, but am not sure.
Any ideas?
Thanks for the help, Mariogs
最满意答案
您使用==而不是.equals()来比较字符串。 经典错误。
You used == instead of .equals() to compare the strings. Classic mistake.
更多推荐
发布评论