我们的教授为我们提供了一系列问题。我几乎完成了,直到我读到我的最后一个程序,我们不能使用布尔和“for”。除了“for”和“Boolean”之外我还可以使用什么来确定数字是Prime还是Not?我希望有人会注意到这一点。请帮帮我。提前谢谢。
答案 0 :(得分:2)
在没有public String verify(int num) {
if (num <= 1) {
return IS_NOT_PRIME;
}
if (num )
return isPrime(num, num);
}
}
public String isPrime(int i, int num) {
if (i == 1) {
return IS_PRIME;
}
if (num % i == 0 && i != num) {
return IS_NOT_PRIME;
}
return isPrime(i-1, num);
}
的情况下解决它的方法是使用递归。如果条件的使用不算作布尔使用,我认为这是练习的答案:
Company Date Country
ABC 2017-09-17 USA
BCD 2017-09-16 USA
ABC 2017-09-17 USA
BCD 2017-09-16 USA
BCD 2017-09-16 USA
ABC 2017-09-19 USA
编辑:英文,lint和负数修复。汤米指出。
答案 1 :(得分:1)
您可以使用while循环而不是for循环,如下所示:
public class Prime{
static int i = 2;
public static String prime(int n){
if(n <= 0){
return("Please enter a number greater than 0");
}
while(i < n){
if(n % i == 0){
return(n + " is not prime");
}
i++;
}
return (n + " is prime");
}
}
答案 2 :(得分:0)
每当您必须检查任何可能性时,响应始终采用boolean
的形式。
如果他对返回data type
不是boolean
非常具体,那么您可以返回int
(1或0)。
for loop
的替代方案是while
,do-while
或recursion
。
iterative
结构的替代方案是recursion
。
答案 3 :(得分:0)
这是在不使用布尔值和for循环的情况下检查素数的程序:
public class PrimeNumber {
public static void main(String args[]) {
PrimeNumber primeNumber = new PrimeNumber();
int i = 2;
int num = 3;
if (num <= 1) {
System.out.println(num + " is not a prime number");
System.exit(1);
}
while(i <= Math.sqrt(num)) {
if (num % i == 0) {
System.out.println(num + " is not a prime number");
System.exit(1);
}
i++;
}
System.out.println(num + " is a prime number");
} }