我似乎无法弄清楚如何解决这个问题。通过查找校验和以及代码的外观,我陷入了数学困境。
我知道代码有一些问题,看起来很草率,可能会以更小,更简洁的方式编写,但我是数组的新手,我还不是很擅长优化它们。
import java.util.Arrays;
import java.util.Scanner;
public class ISBN{
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter ISBN:");
String isbnSTR = keyboard.nextLine();
String x;
int isbnARRAY[] = new int[10];
int total = 0;
for(int i = 0; i < isbnSTR.length(); i++){
x = ""+isbnSTR.charAt(i);
isbnARRAY[i] = Integer.parseInt(x);
total = isbnARRAY[i] * (10 - 1);
boolean isbnVALID = PassArray(isbnARRAY, i);
if (isbnVALID == true){
System.out.println("Your isbn number is valid.");
} else {
System.out.println("Your isbn number is NOT valid");
}
}
}
public static boolean PassArray(int isbnARRAY[], int total){
int result = 0;
int checkSum = 0;
int len = isbnARRAY.length;
for (int x = 0; x < len; x++){
result = (x * total);
checkSum = result % 11;
}
System.out.println(result);
boolean isbnVALID;
if (checkSum == 0){
isbnVALID=true;
} else {
isbnVALID=false;
}
return true;
}
}