这是我在StackOverflow上的第一个问题所以请告诉我,我是不是做得对。无论如何,我搜索得相当彻底,但似乎无法找到我的问题的答案。我不想在Java(Jgrasp)上访问我想访问的方法。我不确定为什么因为我觉得我正在使用正确的符号。
//PROJECT EULER Problem #4
//A palindromic number reads the same both ways. The largest palindrome made
//from the product of two 2-digit numbers is 9009 = 91 × 99.
//Find the largest palindrome made from the product of two 3-digit numbers.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class PE4
{
public boolean isPalindrome(int five)
{
String word = Integer.toString(five);
if (word.length()==5 &&word.substring(0,2).equals(word.substring(3,5)))
return true;
else if(word.length()==6 &&word.substring(0,3).equals(word.substring(3,6)))
return true;
else
return false;
}
public static void NumberFinder()
{
for (int i=999; i>599; i--)
{
for (int j=999; j>i-300; j--)
{
if (isPalindrome(i*j)==true)
{
System.out.print(i + ", " + j + " = " + i*j);
break outerloop;
}
}
}
return 0;
}
PE4 tester = new PE4();
tester.NumberFinder();
}
感谢您抽出宝贵时间阅读我的问题。
安娜
答案 0 :(得分:0)
在Java中,没有可以在类方法范围之外执行的代码。运行程序时,默认执行类的主要功能。因此,您应该在类中添加一个main方法,并在其中调用NumberFinder方法。 另一点是NumberFinder是静态的,因此它可以直接在类上调用而无需创建类的对象。 第三点是静态方法不能访问非静态方法,因此你的isPalindrome方法也应该是静态的。
答案 1 :(得分:0)
将您的顶级代码放在main方法中:
public static void main(String[] args) {
PE4 tester = new PE4();
tester.NumberFinder();
}
但这只是第一步。您还必须从static
方法移除NumberFinder
并修复您的算法,该算法实际上并未检测到回文数字。提示:new StringBuilder(word).reverse().toString().equals(word)