プログラムを作成しましたが、2 つの問題があります。
カウンター i が 1 から x になるのは望ましくありません。これは、実際のユーザー入力よりも小さい数値ごとに割り切れるテストが試行されるためです。2 から 12 まで i を開始して、2-12 のみのテストを試す必要があります。
割り切れるテストは正しく、すべての数値に対して機能しますが、それはプログラムの説明で求められているものではありません。割り切れるテストごとに、前述のアルゴリズムを実装する必要があります。(私は調査しましたが、それを行う方法がわかりません)私が持っているこの単純化されたプログラムはより理にかなっています-開始する場所だけが役立ちます
(注: % モジュラス演算子は使用できません)
2 で割る 最後の桁が偶数 (0,2,4,6,8) 例: 128 は 129 ではありません 3 で割る 桁の合計は 3 で割り切れます 例:381 (3+8+1=12,そして 12÷3 = 4) はい 217 (2+1+7=10, そして 10÷3 = 3 1/3) いいえ 4 で割ります 下 2 桁は 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