G
Guest
Gast
Grüße, also ich bin totaler neuling in Java.
Wir sollen ein code der überprüft ob eine Zahl eine Armstrong Zahl ist modifizieren
so erstma ne frage, ist da kein fehler vom Prof? da steht ja
summe = summe + ziffer*ziffer*ziffer;
also macht er ja immer hoch 3 egal wie viel ziffern die eingebene Zahl hat, eigentlich müsste es irgendwie die potenz der anzahl der ziffern sein, leider habe ich keine Ahnung wie ich das mache, wie sieht denn der befehl für potenz aus? ist es einfach Ziffer^potenz oder is es dieses exp(potenz) aber wie schreib ich das dann Ziffer exp(potenz)...
Habe wirklich keine Idee ^^.
Und die eigentliche Aufgabe ist das er alle Armstrong zahlen von 0 bis (eingegebene Zahl) auflisten soll, aber erstma will ich mich ans erste Problem wagen.
wenn wer tipps hätt wär super
Wir sollen ein code der überprüft ob eine Zahl eine Armstrong Zahl ist modifizieren
ok der vorgegebene code istEine Armstrong-Zahl ist eine Zahl , bei der die Summe der einzelnen Ziffern, die jeweils mit der Anzahl der Ziffern der Zahl potenziert wird, gleich der Zahl ist
wie z.B.: 153 = 1³+5³+3³
Code:
public class ArmstrongTest {
public static void main (String args[]) {
int zahl = Integer.parseInt(args[0]);
if (zahl <= 0) {
System.out.println("Nur positive Argumente erlaubt!");
return; // bedeutet hier: sofort stoppen!
}
// Doch bis hier gekommen? D.h. kein Stop, also weiter:
int gemerkt;
gemerkt = zahl; // aktuellen Wert f. spaeteren Vergleich merken
int summe;
summe = 0;
int ziffer;
do {
ziffer = zahl % 10; // letzte Ziffer
summe = summe + ziffer*ziffer*ziffer;
zahl = zahl/10; // letzte Ziffer weg, da ganzzahlige Div.
} while (zahl > 0); // Achtung: Semikolon nicht vergessen!!
if (summe == gemerkt)
System.out.println("Das ist eine Armstrong-Zahl.");
else
System.out.println("Das ist keine Armstrong-Zahl.");
}
}
so erstma ne frage, ist da kein fehler vom Prof? da steht ja
summe = summe + ziffer*ziffer*ziffer;
also macht er ja immer hoch 3 egal wie viel ziffern die eingebene Zahl hat, eigentlich müsste es irgendwie die potenz der anzahl der ziffern sein, leider habe ich keine Ahnung wie ich das mache, wie sieht denn der befehl für potenz aus? ist es einfach Ziffer^potenz oder is es dieses exp(potenz) aber wie schreib ich das dann Ziffer exp(potenz)...
Habe wirklich keine Idee ^^.
Und die eigentliche Aufgabe ist das er alle Armstrong zahlen von 0 bis (eingegebene Zahl) auflisten soll, aber erstma will ich mich ans erste Problem wagen.
wenn wer tipps hätt wär super