Hallo,
ich möchte gerne die aufgabe hier (Einsendedatum schon abgelaufen...ihr braucht euch also keine moralischen Vorwürfe zu machen, wenn ihr mir helfts) mal nur so zum Spaß mit Java lösen.
Kurze Zusammenfassung der Aufgabe:
Es soll (2^10)^64 gelöst werden, und die Anzahl der Stellen bestimmt werden, die diese Zahl hat.
Ich habe mir dazu follgendes überlegt:
erzeugt:
// /=von mir gemachter Umbruch zur Formatierung
2^10 ist ja 1024, das benutze ich direkt als Startwert.
Beim Exponenzieren baut Java leider nur noch Mist, die Zahl ist viel zu klein und die Stellenanzahl stimmt vorne und hinten nicht.
Frage: Kann BitInteger mit dieser Größe an Zahlen rechnen? Warum funktioniert das nicht, warum rechnet er falsch/bzw. gibt bei toString() nicht die richtige Zahl aus?(sie ist viel zu kurz, daher weiß ich, dass sie falasch ist.
[Liegt es vllt. an einer Limitierung von String?]
kann ich mit bitLength() die Anz. der Stellen bestimmen, oder muss ich das anders machen?
Danke für Antworten
ich möchte gerne die aufgabe hier (Einsendedatum schon abgelaufen...ihr braucht euch also keine moralischen Vorwürfe zu machen, wenn ihr mir helfts) mal nur so zum Spaß mit Java lösen.
Kurze Zusammenfassung der Aufgabe:
Es soll (2^10)^64 gelöst werden, und die Anzahl der Stellen bestimmt werden, die diese Zahl hat.
Ich habe mir dazu follgendes überlegt:
Code:
import java.math.BigInteger;
public class BigCalculator {
private BigInteger basis = BigInteger.valueOf(1024);
private BigInteger ergebnis;
public BigCalculator() {
ergebnis = basis.pow(64);
System.out.println(ergebnis.toString());
System.out.println();
System.out.println(ergebnis.bitLength());
}
public static void main(String[] args) {
new BigCalculator();
}
}
erzeugt:
Code:
456244061762219521864117160570029132489322850724855993057919251789927/51672086773865059128113173713997786423095735944073106/
88704721375437998252661319722214188251994674360264950082874192246603776
641
2^10 ist ja 1024, das benutze ich direkt als Startwert.
Beim Exponenzieren baut Java leider nur noch Mist, die Zahl ist viel zu klein und die Stellenanzahl stimmt vorne und hinten nicht.
Frage: Kann BitInteger mit dieser Größe an Zahlen rechnen? Warum funktioniert das nicht, warum rechnet er falsch/bzw. gibt bei toString() nicht die richtige Zahl aus?(sie ist viel zu kurz, daher weiß ich, dass sie falasch ist.
[Liegt es vllt. an einer Limitierung von String?]
kann ich mit bitLength() die Anz. der Stellen bestimmen, oder muss ich das anders machen?
Danke für Antworten