1
import java.utils.Scanner; 

public class PD {
    public static void main(String[] args) { 

    System.out.print("Enter your number: " ); 
    int number = input.nextInt(); 
    System.out.println( DPPP(number) + "is double palidromic prime"); 

    }
    // main method checks every other method and returns a value that follows everything
    public static int DPPP( int number) {
        int count = 2;
            while (count < number) {
                String blank = "";
                String Snumber = count + blank; 
                if (isPalindromic(count) && isPrime(count) && 
                    isPalindromic(Snumber.length()) && isPrime(Snumber.length()))
                    return count;
                    count++;
            }
    }

    // method to find palindromic 
    public static boolean isPalindromic(int number) {
        String blank = ""; 
        String convert = count + blank; 
            for (int i = 0, int q = 1; i <= (convert.length()/2 - 1); i++, q++) { 
                if (convert.substring(i,q) == number.substring(number.length() - q, number.length() - i))
                    return true;
                else 
                    return false; 
        }
    }
    // method to find prime
    public static boolean isPrime(int number) {
        for (int divisor = 2; divisor <= number/2; divisor++) { 
            if (number % divisor == 0) { 
                return false; 
            }
        }
        return true; 
    }
}

错误:

PD.java:28: <identifier> expected
for (int i = 0, int q = 1; i <= (convert.length()/2 - 1); i++, q++) { 
               ^
PD.java:28: not a statement
for (int i = 0, int q = 1; i <= (convert.length()/2 - 1); i++, q++) { 
                             ^
PD.java:28: ')' expected
for (int i = 0, int q = 1; i <= (convert.length()/2 - 1); i++, q++) { 
                                                        ^
PD.java:28: ';' expected
for (int i = 0, int q = 1; i <= (convert.length()/2 - 1); i++, q++) { 
                                                             ^
PD.java:28: ';' expected
for (int i = 0, int q = 1; i <= (convert.length()/2 - 1); i++, q++) {

而且我不确定为什么它要求放置一个 ; 以及为什么它说这不是一个声明

总的来说,我得到了那个错误,我不明白为什么。感谢您的帮助!我知道我的程序可能不正确,但我真的想专注于修复这个错误。再次感谢您的帮助和时间。

4

4 回答 4

2

问题似乎是您在一个语句中有两个类型标识符(例如 int i、int j;)。当您使用相同的语句声明两个变量时,它们被隐式赋予相同的类型,因此应将其更改为:

for (int i = 0, q = 1; i <= (convert.length()/2 - 1); i++, q++) {

另一种选择是在循环中从 i 计算 q:

for (int i = 0; i <= (convert.length()/2 - 1); i++) {
    int q = i+1;
    ...
}
于 2013-10-31T01:33:03.117 回答
1

将初始化程序更改为:int i = 0, q = 1

于 2013-10-31T01:32:32.033 回答
0

我对你的 for 循环有一个评论, q 在停止条件中永远不会被考虑,因此在我看来将它放在循环中更合乎逻辑。

我将您的循环更改为:

int q = 1;
for (int i = 0; i <= (convert.length()/2 - 1); i++) {
    // code within the loop
    q++;
}

希望它可以帮助你。

于 2013-10-31T01:36:56.070 回答
0

尝试这个

for (int i = 0,; i <= (convert.length()/2 - 1); i++) { 
    if (convert.substring(i,i + 1) == number.substring(number.length() - i + 1, number.length() - i))
于 2013-10-31T01:33:43.717 回答