我已经编写了程序但是我有两个问题:
我不希望计数器 i 从 1 变为 x,因为它会尝试对每个小于实际用户输入的数字进行可分性测试。我需要它从 2 开始 i 一直到 12 以便您只尝试 2-12 的测试。
可分性测试是正确的,它适用于每个数字,但这不是程序描述中所要求的。我需要为每个可分性测试实现上述算法。(我已经研究过,但不知道该怎么做)我拥有的这个简化程序更有意义 - 只是一个开始的地方会很有帮助
(注意:不能使用 % 模运算符)
Div by 2 最后一位是偶数 (0,2,4,6,8) 例如:128 是 129 不是 Div by 3 数字之和可以被 3 整除 Ex:381 (3+8+1=12, and 12÷3 = 4) Yes 217 (2+1+7=10, and 10÷3 = 3 1/3) No Div by 4 最后两位数能被 4 整除 例如:1312 是 (12÷4=3 ) 7019 不是 5 最后一位是 0 或 5 175 是 809 不是除以 6 (注:您可以将 6 作为单独的用户定义函数或使用 2 和 3 的函数)该数字可以被 2 和 3 整除例如:114(偶数,1+1+4=6 和 6÷3 = 2)是 308(偶数,但是 3+0+8=11 和 11÷3 = 3 2/3)否
还有更多 - 只是一个开始的地方或有一些有用信息的链接将不胜感激。谢谢
import java.io.PrintStream;
import java.util.Scanner;
public class rwsFinalExam
{
public static void main(String [] args)
{
Scanner scanner = new Scanner( System.in );
//allows input from concole
PrintStream out = System.out;
//assigning System.out to PrintStream
out.print( "Input a valid whole number: " );
//ouput directions for end user to enter a whole number
String input = scanner.next(); //holds end user input
int number; //data type and variable
try
{
number = Integer.parseInt(input);
//assinging value to number
//integer.parseInt method converts string to int
}
catch (Exception e)
{
out.println(input + " is not a valid number");
return;
}
if (number < 0)
{
out.println(number + " is not a valid number");
return;
}
printDivisors(number);
}
private static void printDivisors(int x)
{
PrintStream out = System.out;
for (int i=1; i<x; i++)
{
if (isDivisibleBy(x, i)) //checking divisibility
{
out.println(x + " is divisible by " + i);
//output when value is divisible
}
else
{
out.println(x + " is not divisible by " + i);
//output when value not divisible
}//end if else
}//end for
}//end private static
private static Boolean isDivisibleBy(int x, int divisor)
{
while (x > 0)
{
x -= divisor;
if (x == 0)
{
return true;
}
}
return false;
}//end
}//end class rwsFinalExam