给定一个整数N作为输入,可以检查以下内容:
如果N是奇数,则打印“Weird” 如果N是偶数,并且在2到5(含)之间,则打印“Not Weird” 如果N是偶数,并且在6到20(含)之间,则打印“Weird” 如果N是偶数,则打印“Not Weird”
我写了这段代码 -
public class Solution {
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
int ip;
Scanner sc = new Scanner(System.in);
ip = sc.nextInt();
if(ip%2==0 ){
if(ip>=6 || ip<=20){
System.out.println("Weird");
}
System.out.println("Not Weird");
}
else{
System.out.println("Weird");
}
}
}
24失败 - 输出 - 奇怪的 不奇怪
预期 不奇怪。
有人能说出我的错误吗?
答案 0 :(得分:2)
print“Not Weird”如果N是偶数,则在6和6之间 20(含)
这表明N应该在6到20之间并且你写了
if(ip>=6 || ip<=20)
如果考虑所有ip
大于或等于6或所有ip
小于等于20,那么所有数字。
您应该使用&&
运算符,而不是||
运算符
您的代码应为:
...
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN.
Print output to STDOUT. Your class should be named Solution. */
int ip;
Scanner sc = new Scanner(System.in);
ip = sc.nextInt();
if(ip%2==0 ){
if(ip>=6 && ip<=20){
System.out.println("Weird");
} else {
System.out.println("Not Weird");
}
} else {
System.out.println("Weird");
}
}
...
答案 1 :(得分:1)
在条件
中添加ip >= 6 && ip <= 20
而不是ip >= 6 || ip <= 20
答案 2 :(得分:1)
一个非常简单易用的解决方案。
它可以满足您的所有条件。 希望它很清楚
Scanner sc = new Scanner(System.in);
int ip = sc.nextInt();
String str= (ip %2 == 0 && ( ip >=2 && ip <= 5 ) || (ip > 20 )) ? "Not Weired" : "Weired";
System.out.println(str);