Perfect digit-to-digit invariant

T

TheRainMan

Gast
Hallo zusammen,

ich möchte ein (Java)Programm schreiben mit dem ich die "Muenchhausen Zahlen" quasi errechnen kann.

Die Erste ist 1, denn 1 hoch 1 (1^1) = 1

Die Zweite:
3435
= 3^3 + 4^4 + 3^3 + 5^5
= 27 + 256 + 27 + 3125

Die Dritte
438579088
= 44 + 33 + 88 + 55 + 77 + 99 + 00 + 88 + 88
= 256 + 27 + 16777216 + 3125 + 823543 + 387420489 + 0 + 16777216 + 16777216

Mein Ansatz war:

limit -> muss größer als 438579088 sein
Java:
for (int i = 1; i < limit; ++i{
int number = n;
int sum = 0;
while (number > 0) {
int digit = number % 10;
number = number / 10;
}

Für jede Hilfe bin ich dankbar. Vorallem geht es mir um eine effektiver("schnellere") Methode als diese Zahlen mit der for-Schleife zu errechnen.

Nun dreht sich alles in meinem Kopf und ich schaue mal, ob ich heute noch einen anständigen Gedanken dazu fassen kann.

Lg
 

XHelp

Top Contributor
1. 0^0 ist aber 1 und nicht 0 (ok, ansichtssache, aber dennoch...). Wenn du es mit 0 gleich setzt, dann ist die erste gesuchte Zahl aber 0 selber und nicht erst die 1.
2. würde ich wenn, dann mit long rechnen, wenn nicht gleich mit BigInteger
3. wo genau ist nun eigentlich die Frage oder welche Ansätze hast du schon? Die for-Schleife allein wird das ja wohl nicht sein, oder?

P.S. ok, es gibt wohl nur 4 Zahlen, d.h. du kannst durch auch bei int bleiben.
 
Zuletzt bearbeitet:
Ähnliche Java Themen

Ähnliche Java Themen


Oben