2016-09-23 27 views
0
// Binomial Expansions 
     String the_x, the_y; 
     System.out.println("Binomial Expansions:"); 
     for(int i=0; i<=max; i++){ 
      num = 1; 
      r = i+1; 
      xpow=i; 
      ypow=0; 
      System.out.print("(x + y)^"+i+" = "); 
      if(i==0) System.out.print("1"); 
      for(int j=0; j<=i; j++){ 
       if(j>0){ 
       num = num*(r-j)/j; 
       System.out.print("x^"+(xpow+1)+" + "); 
       System.out.print(num+"x^"+xpow+"y^"+ypow); 
       } 
       xpow--; 
       ypow++; 
      } 
      System.out.println(); 
     } // End of binomial expansions 

私のコードに関する質問はほとんどありません。java印刷の代わりに0の代わりに

  1. 0と1は印刷できません。 ^の電源が0または1のときに取り除くための推奨方法はありますか?私は二回xを印刷しています

  2. 理由は、この(x + y)^5 = x^5 + 5x^4y + 10x^3y^2 + 10x^2y^3 + 5xy^4 + y^5のように、xがyの前に位置していますし、私が欲しいということです私は、X二度印刷されない場合は、私の結果は、この(x + y)^5 = x^5 + 5y^1x^4 + 10y^2x^3 + 10y^3x^2 + 5y^4x^1 + 1y^5ようになります。私は何ができますか?

  3. 私のタイトルとタグは適切ではないと思いますが、私は後で検索することができますか?私が見て何

DecimalFormatTypeCastですが、私は両方が、この状況は適用されないとは思いません。事前に感謝

+4

私はあなたの質問を誤解が、なぜちょうど持って0または1のために、そのケースをチェックするためにif文を使用しないですることができます別の印刷ライン? – TheFooBarWay

+0

私もそれについて考えました。私は好奇心を持っていました。 #2は私にとって大きな問題です – jaykodeveloper

答えて

1

これを試してください。

static String power(String v, int p) { 
    switch (p) { 
    case 0: return "1"; 
    case 1: return v; 
    default: return v + "^" + p; 
    } 
} 

static String mult(int k, String... terms) { 
    if (k == 0) 
     return "0"; 
    String r = "" + k; 
    for (String t : terms) { 
     if (t.equals("0")) 
      return "0"; 
     else if (t.equals("1")) 
      continue; 
     else if (r.equals("1")) 
      r = t; 
     else 
      r += t; 
    } 
    return r; 
} 

static void biominal(int max) { 
    System.out.println("Binomial Expansions:"); 
    for (int i = 0; i <= max; i++) { 
     int num = 1; 
     int r = i + 1; 
     System.out.print("(x + y)^" + i + " = "); 
     System.out.print(power("x", i)); 
     for (int j = 1; j <= i; j++) { 
      num = num * (r - j)/j; 
      System.out.print(" + " + mult(num, power("x", i - j), power("y", j))); 
     } 
     System.out.println(); 
    } 
} 

biominal(5); 

結果:

Binomial Expansions: 
(x + y)^0 = 1 
(x + y)^1 = x + y 
(x + y)^2 = x^2 + 2xy + y^2 
(x + y)^3 = x^3 + 3x^2y + 3xy^2 + y^3 
(x + y)^4 = x^4 + 4x^3y + 6x^2y^2 + 4xy^3 + y^4 
(x + y)^5 = x^5 + 5x^4y + 10x^3y^2 + 10x^2y^3 + 5xy^4 + y^5 
関連する問題