【发布时间】:2016-01-29 04:19:24
【问题描述】:
codingbat.com上有一个谜题,看起来很琐碎,但是当我解决并提交时,传入参数45或15时标记为错误到方法。我对以下问题的逻辑在这里做错了什么?
如果给定的非负数是 3 或 5 的倍数,则返回 true, 但不是两者兼而有之。使用 % "mod" 运算符 -- 请参阅 Mod 简介
我的解决方案:
public Boolean old35(int n) {
if( n % 3 == 0 || n % 5 == 0 && !(n % 3 == 0 && n % 5 == 0) ){
return true;
}
return false;
}
Codingbat 的解决方案对我来说毫无意义:
public Boolean old35(int n) {
return n % 3 == 0 ^ n % 5 == 0;
}
【问题讨论】:
-
^是“排他性的或”——它的意思是“这些条件之一,但不是两个”。 -
您没有检查“NOT BOTH”的情况。
标签: java