我正在开发一个确定酷号码的程序。一个很酷的数字是任何数字,当除以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的新手。提前致谢
答案 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,以及如何构建测试数据会说服你的代码正常工作。