确定酷数?

时间:2016-12-12 03:21:35

标签: java

我正在开发一个确定酷号码的程序。一个很酷的数字是任何数字,当除以3,4,5和6时,余数为1。方法iscoolNum将确定一个数字是否是一个很酷的数字。方法countCoolNumbers将计算6和传入的参数之间的冷数的数量。这是我在课堂上到目前为止的一个例子:

import static java.lang.System.*;

public class CoolNumbers 

{

public static boolean isCoolNumber( int num )
{ 
     int x; 
    x = 6;
    for(x = 6; x<num; x++)
    {
    if ((x%3==1)  &&  (x%4==1)  && (x%5 ==1) && (x%6 == 1))

        return true;

    }
     return false;
}


public static int countCoolNumbers( int stop )
{
     boolean check=isCoolNumber(stop);
     int b=0;
  for(b=0;b<stop;b++);
   {
    if(check==true)
    {

    }
    else
    {
        b=b-1;
    }
 return b;

}

} }

主要代码:

import static java.lang.System.*;

public class CoolNumbersRunner

{

public static void main( String[] args )
{

    System.out.println( CoolNumbers.countCoolNumbers(250) + " cool numbers between 6 - " + 250);
    //add more test cases
}

}

我遇到的问题是当我运行程序时,输出是#250;在2-250和#34之间的250个酷数字。而它应该只有4个很酷的数字到6-250。我无法弄清楚如何正确使用for循环等。对不起,如果有些事情似乎没有,我是Java的新手。提前致谢

1 个答案:

答案 0 :(得分:0)

我不会立即泄露答案,而是会引导您访问for语句here的教程页面,我将指出以下内容:

由于通话不在循环内,您的countCoolNumbers只会拨打isCoolNumber一次。

countCoolNumbers这里有一个错误:for(b=0;b<stop;b++);你可能不打算在循环中没有逻辑,但这就是你在{{之后放置一个分号的方法所做的1}}。

可以编写

for来使用循环,也可以在没有循环的情况下编写。该循环将用于生成模数的第二个参数 - 3,4,5,6。你写它的方式是每种方法的一半,并没有实现你的目标。请记住,该方法的目的是确定单个数字(参数)是否为“酷号”。然后重复调用此方法,为其参数赋予不同的值。

修改

其他想法:

一旦完成更改,您将需要彻底测试您的代码。为了做到这一点,我建议你花一些时间从数学的角度思考一个数字的含义,当除以3,4,5,6时,剩余的1为1,以及如何构建测试数据会说服你的代码正常工作。