Hallo zusammen,
ich sitz schlepp jetzt schon seit ein paar Tagen diese Aufgabe mit, ich find einfach keine Lösung. Es geht um folgendes:
Aufgabenstellung:
Schreiben Sie eine Methode armstrong(n), die true zurückliefert, wenn die Ganzzahl n eine Armstrongzahl ist. Sonst wird false zurückgegeben.
Und hier mein Code:
Java
import java.util.*;
public class Uebung5_2 {
static boolean armstrong (boolean erg, int t){ // Mir is klar, das hier was nicht stimmt, ich hab nur keine Ahnung, was...
System.out.print("Die eingegebene Zahl ("+t);
int h=0; //Hilfsvariable
if (t==0){
return erg=false;}
else if (t<=10){
String s = Integer.toString(t); //Float wird zu String umgewandelt, um die einzelnen Zahlen zu erhalten.
int v = s.charAt(0);
v=v-47;
h=v^1;
if (t==h)
return erg = true;
else return erg=false;}
else if (t>=10&&t<100){
String s = Integer.toString(t); //Float wird zu String umgewandelt, um die einzelnen Zahlen zu erhalten.
int v = s.charAt(0);
int w = s.charAt(1);
v=v-48;
w=w-48;
h=v^2*w^2;
if (t==h)
return erg = true;
else return erg=false;}
else if (t>=100&&t<1000){
String s = Integer.toString(t); //Float wird zu String umgewandelt, um die einzelnen Zahlen zu erhalten.
int v = s.charAt(0);
int w = s.charAt(1);
int x = s.charAt(2);
v=v-48;
w=w-48;
x=x-48;
h=v^3*w^3*x^3;
if (t==h)
return erg = true;
else return erg=false;}
else if (t>=1000&&t<10000){
String s = Integer.toString(t);
int v = s.charAt(0);
int w = s.charAt(1);
int x = s.charAt(2);
int y = s.charAt(3);
v=v-48;
w=w-48;
x=x-48;
y=y-48;
h=v^4*w^4*x^4*y^4;
if (t==h)
return erg = true;
else return erg=false;}
}
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
System.out.println("Bitte geben Sie eine Zahl ein, um zu prüfen, ob diese eine Armstrongzahl ist...");
boolean erg=true; //erg= true, damit erg initialisiert werden kann.
int t = input.nextInt();
armstrong(erg, t);
if (erg==true)
System.out.println(" ist Armstrong");
else System.out.println("ist nicht Armstrong");
}
}
Alles anzeigen
So, das ganze funzt nicht, meine Frage is nun, wie ich es schaffen kann, eine Methode (armstrong(n), wobei n ja eine Ganzzahl sein soll) zu schreiben, die gleichzeitig aber einen boolean zurückgibt.
Wie geht sowas?
Falls die Frage hier fehl am Platz is, bitte ich das zu entschuldigen :wein:
Ich verzweifel bald^^