我正在尝试用Java编写一个代码,它可以使用一个整数数组,并使用一个名为contains
的已定义方法确定数组是否包含素数,完美正方形或负数的元素。该方法采用整数数组,如果数组中存在满足指定条件的任何项,则返回true。例如,以下代码片段:
int[] input = {100, 37, 49};
boolean result1 = contains(input, new Prime( ));
boolean result2 = contains(input, new PerfectSquare( ));
boolean result2 = contains(input, new Negative( ));
result1
将返回true,因为37是素数,result2
也会返回true,因为100和49是完美的正方形,而result3
将返回false,因为没有元素是负数。代码需要实现:
用于指定要包含的第二个参数的接口。
contains
方法本身(这是一种静态方法)。
类Negative,Prime和Perfect Square。
我的主要问题是确定如何编写contains方法以及Prime和PerfectSquare类。任何帮助将不胜感激。
答案 0 :(得分:0)
要确定数字是否为素数,您需要将数字除以1中的每个数字到该数字的平方根。
static boolean isPrime(int num){
for(int i=2;i<=Math.sqrt(num);i++){
if (num%i==0)//if you can divide him by a number other than 1 and himself return false
return false
}
return true;
}
要确定一个数字是否为完美正方形,只需执行其平方根并检查它是否为int
static boolean isPerfectRoot(int num){
double sqrt=Math.sqrt(num);
int casting=(int)(sqrt);//cast it to an int
if(sqrt%casting==0)
return true;
else
return false
}
我假设您知道如何编写方法isNegative()。您可以在contains方法中调用这3个方法。您的contains方法必须基本上循环遍历数组并在每个输入上调用3个方法。 你需要什么课程,没有任何意义,尤其是你没有给他们任何论据,你能澄清你的意图吗?