Ausgabe der berechneten Fakultaet

Folgendes habe ich schon:

Java:
for (int i=1;i<=fak;i++)
{
    temp=temp*i;
    System.out.println(fak+"! = "+temp);
}

Wie reihe ich jetzt die einzelnen Zahlen in der AUsgabe aneinander für z.B.
3!=1*2*3=6
 
Java:
public static void main(String... _) throws Throwable {
    int MAX = 10;
    StringBuilder result = new StringBuilder();
    result.append(MAX).append("!=");
    int fac = 1;
    for(int i = 1; i <= MAX; i++) {
        fac *= i;
        result.append(i);
        if(i < MAX) {
            result.append('*');
        }
    }
    result.append('=').append(fac);
    System.out.println(result.toString());
}
 
dh? ohne StringBuilder

Java:
    public static void main(String... _) throws Throwable {
        int MAX = 10;
        String result = MAX + "!=";
        int fac = 1;
        for(int i = 1; i <= MAX; i++) {
            fac *= i;
            result += i;
            if(i < MAX) {
                result += '*';
            }
        }
        result = result + '=' +fac;
        System.out.println(result);
    }
 
oder
Java:
    public static void main(String... _) throws Throwable {
        int MAX = 10;
        // rechne
        int fac = 1;
        for(int i = 1; i <= MAX; i++) {
            fac *= i;
        }
        // bastle String zusammen
        String result = MAX + "!=";
        for(int i = 0; i <=MAX ;i ++) {
            result += i;
            if(i < MAX) {
                result += '*';
            }
        }
        result = result + '=' +fac;
        // ausgeben
        System.out.println(result);
    }
 
Hier mal für beliebig lange Zahlen ohne das n*n*n... 😉
Java:
/**
 * Funktion zur Berechnung der Fakultät
 * 
 * @param pValue
 *            Zahl
 * @return <b>BigDecimal</b> Fakultät der Zahl
 */
public static BigDecimal faculty(BigDecimal pValue) {
	BigDecimal tValue = pValue;
	BigDecimal tBig = pValue;
	if (pValue.equals(0)) {
		return BigDecimal.ONE;
	}
	while (pValue.longValue() > 1) {
		tBig = tBig.multiply(tValue = tValue.subtract(BigDecimal.ONE));
	}
	return tBig;
}

/**
 * Funktion zur Berechnung der Fakultät
 * 
 * @param pValue
 *            Zahl
 * @return <b>BigDecimal</b> Fakultät der Zahl
 */
public static BigDecimal faculty(long pValue) {
	return faculty(BigDecimal.valueOf(pValue));
}

Aufruf:
Java:
int val = 42;
BigDecimal big = BigMath.faculty(val);
System.out.println(val + "! = " + big);

Output:
Java:
42! = 1405006117752879898543142606244511569936384000000000

Kann recht hilfreich sein, da die Ergebnisse bei der Fakultätsberechnung sehr schnell sehr groß werden
 

Zurück
Oben