我想开始说我是新人,需要帮助。
提示: 编写一个方法,public static boolean Language(String word),用于识别以下语言的单词:
{ a^n | n is a prime number }
如果输入“word”来自语言,则该方法返回true和false。
测试示例:
Input: aaa true
Input: aaaaaaaa false
Input: aaaaaaa true
Input: a false
Input: aba false
感谢您的帮助和时间。
编辑:
好吧所以我对isPrime以及要输入的内容非常困惑,但此时我正处于isPrime(String word)并且编译在“boolean F = isPrime(word.length())”中给出了一个错误不能应用于(int)。
import java.io.*;
import java.util.*;
public class Homework_2F_2
{
public static void main(String args[])
{
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter a word from language \"A\" ");
String word = keyboard.nextLine();
boolean D = isTrue(word);
if(D == false)
System.out.println("This word is not part of the language");
boolean F = isPrime(word.length());
if(F == true && D == true)
System.out.println("This word is part of the language");
}
//Check for language Method
public static boolean isTrue(String word)
{
if(word.length() == 1)
return false;
for(int i = 0; i < word.length(); i++)
{
if(word.charAt(i) != 'a')
return false;
}
return true;
}
//Method to find if word is prime
public static boolean isPrime(String n)
{
}
}
答案 0 :(得分:4)
我不确定您的具体问题是什么,但您可以先检查输入字符串的长度,看看它是否为素数。 (参见http://en.wikipedia.org/wiki/Primality_test)然后,检查字符串中的每个字符是否都是'a'。
答案 1 :(得分:1)
如果将问题分解为较小的问题,对您来说会更容易。根据输入,您需要执行以下任务:
更具体地说:
答案 2 :(得分:-2)
你去......
public static boolean Language(String word)
{
if(word == null)
{
return false;
}
for(char c : word.toCharArray())
{
if(c != 'a')
{
return false;
}
}
int len = word.length();
if(len == 0 || len == 1)
{
return false;
}
for(int i = 2; i <= len - 1; i++)
{
if(len % i == 0)
{
return false;
}
}
return true;
}