質問 :
ISBN-10 は、d1、d2、d3、d4、d5、d6、d7、d8、d9、d10 の 10 桁で構成されます。最後の桁 d10 はチェックサムで 、次の式を使用して他の 9 桁から計算されます。
(d1 * 1 + d2 * 2 + d3 * 3 + d4 * 4 + d5 * 5 + d6 * 6 + d7 * 7 + d8 * 8 + d9 * 9) % 11
チェックサムが 10 の場合、最後の桁は ISBN-10 規則に従って X として示されます。
ユーザーに最初の 9 桁の入力を求め、10 桁の ISBN (先行ゼロを含む) を表示するプログラムを作成してください。プログラムは入力を整数として読み取る必要があります。
サンプルの実行は次のとおりです。
ISBN の最初の 9 桁を整数で入力してください: 013601267
ISBN-10 番号は 0136012671 です
私のコード:
import java.util.Scanner;
public class ISBN_Number {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int[] num = new int[9];
System.out.println("Enter the first 9 digits of the an ISBN as integer: ");
for (int i = 0; i < num.length; i++) {
for (int j = 1; j < 10; j++) {
num[i] = s.nextInt() * j;
}
}
int sum = 0;
for (int a = 0; a < 10; a++) {
sum += num[a];
}
int d10 = (sum % 11);
System.out.println(d10);
if (d10 == 10) {
System.out.println("The ISBN-10 number is " + num + "X");
} else {
System.out.println("The ISBN-10 number is" + num);
}
}
}
問題: 私は Java を学ぶのが初めてなので、この質問を理解するのに苦労しています。期待した結果が得られないため、どこが間違っているのか教えてもらえますか。ありがとうございました。