在JAVA编码蝙蝠简单代码逻辑

时间:2014-04-19 13:23:07

标签: java

Coding bat是一个使用JAVA或Python测试候选人的逻辑和推理能力的网站。我正在尝试以下问题而无法继续:

给定非负数“num”,如果num在10的倍数的2中,则返回true。注意:(a%b)是除以b的余数,因此(7%5)是2另见:Mod简介

nearTen(12)→是的 nearTen(17)→false nearTen(19)→true

我写的代码是:

{
public boolean nearTen(int num) {
  if (num==10 || num==1){
  return true;}
  else if (num<10){
  return false;}
  else if ((num+2)%10==0 || ((num-2)%10==0)){
  return true;}
  else if ((num+1)%10==0 || ((num-1)%10==0)){
  return true;}
  else{
  return false;}
}
}

你们中的任何人都可以告诉我的错误,以便我可以改进吗?

4 个答案:

答案 0 :(得分:2)

您必须检查给定数字的模数是否小于或等于2(<= 2),或大于或等于8(>= 8)。

您不必检查任何特殊值,因为没有任何特殊值,它们会回答问题的一般逻辑。

public boolean neatTen (int num) {
    if (num%10 <= 2 || num%10 >= 8) {
        return true;
    } else {
        return false;
    }
}

如果您必须考虑负值,则必须使用Math.abs()使数字为正数,但这对代码的改动非常小。

如果你想把它作为一个单行:

return (num%10 <= 2) ? true : (num%10 >= 8) ? true : false ;

答案 1 :(得分:0)

如果除以10后的余数为0,1,2,8或9,则返回true。

public boolean nearTen (int num) {
    if (num%10 <= 2 || num%10 >= 8)
        return true;

    return false;    
}

答案 2 :(得分:0)

def near_ten(num):   返回(num + 2)%10 <= 4

答案 3 :(得分:-1)

如果我理解了这个问题,那么你只需要使用mod(%)并检查提醒是否为&lt; = 2或&gt; = 8。

public static boolean nearTen(int num) {
     if (num==10 || num==1){
          return true;
        }
      else if (num<10 && 10-num<2){
          return true;
          }
      else if (num%10<=2 || num%10>=8){
          return true;
          }
      else{
          return false;
          }     
}