思考了1個小時之後,我仍然無法弄清楚我的計算器有什麼問題。我做了3個功能,其中包括main()
,calculateBinomialTheorem()
和factorial()
。是的,factorial()
來計算係數。這個二項式定理計算器有什麼問題?
public static void main(String[] args) {
Scanner a_input = new Scanner(System.in);
Scanner b_input = new Scanner(System.in);
Scanner n_input = new Scanner(System.in);
int a = 0;
int b = 0;
int n = 0;
System.out.println("Welcome to Binomial Theorem Solver:");
System.out.print("a: ");
a = a_input.nextInt();
System.out.print("b: ");
b = b_input.nextInt();
System.out.print("n: ");
n = n_input.nextInt();
System.out.print(calculateBinomialTheorem(a, b, n));
a_input.close();
b_input.close();
n_input.close();
}
private static int calculateBinomialTheorem(int a, int b, int n) {
int result = 0;
int coefficient = 0;
ArrayList<Integer> products = new ArrayList<Integer>();
for(int i = 1; i <= n; i++) {
int product = 0;
coefficient = factorial(n)/(factorial(i) * factorial(n - i));
product = (int) (coefficient*Math.pow(a, n - i)*Math.pow(b, i));
products.add(product);
}
for(int c : products) {
result += c;
}
return result;
}
private static int factorial(int num) {
int factorial = 1;
if(num > 0) {
for (int c = 1 ; c <= num ; c++)
factorial = factorial*c;
} else {
return 0;
}
return factorial;
}
我試圖運行它的值爲3,3,3應該給我的答案216,但它沒有給!爲什麼?我每次使用這些值這樣運行它是我的錯誤:
Exception in thread "main" java.lang.ArithmeticException:/by zero
at binomial_thorem_solver.Main.calculateBinomialTheorem(Main.java:46)
at binomial_thorem_solver.Main.main(Main.java:29)
我知道我將數0,但我沒有得到如何解決這個問題。
請幫忙。
更新:感謝您的答案。你們都知道問題是什麼,但是之後又出現了另一個問題,因爲這個循環迭代的次數少了一次,因爲waas最初設置爲1.我將它設置爲0,它工作正常!
爲什麼你需要3臺掃描儀? –
獲得(** a ** + ** b **)^ ** n **。 @BoristheSpider –
掃描器從輸入流中讀取,你有3個輸入流嗎? (號)那麼你需要3臺掃描儀? (編號) –