簡體   English   中英

java什么都不打印而不是0

[英]java printing nothing instead of 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

關於我的代碼,我有幾個問題。

  1. 如何不打印0和1? 並且有什么建議的方法可以消除^的冪為0或1時?

  2. 我兩次打印x的原因是我想x位於y之前,例如(x + y)^5 = x^5 + 5x^4y + 10x^3y^2 + 10x^2y^3 + 5xy^4 + y^5但是,如果我不打印兩次x,我的結果將如下所示(x + y)^5 = x^5 + 5y^1x^4 + 10y^2x^3 + 10y^3x^2 + 5y^4x^1 + 1y^5 我該怎么辦?

  3. 我認為標題和標簽不合適,以后遇到什么麻煩?

我看的是DecimalFormatTypeCast但我認為這兩種情況都不適用。 提前致謝

嘗試這個。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM