如果给定的非负数比1或2的倍数小1或2,则有一个Java编码问题返回true
。例如38和39它返回true
,但是40返回false
。
我的代码:
public boolean less20(int n){
if(n%20==0){
return false;
}else if(n>20 && n%20!=0){
return false;
}else if(20-n>2){
return false;
}else if((n+1)%20!=0||(n+2)%20!=0){
return true;
}else{
return true;
}
}
该代码适用于大多数情况,但其中一些根本不起作用,例如n = 58或n = 59.
如何修复我的代码并使用最简单的方法来解决这个问题?