Werd ich natürlich ändern, aber alles zu seiner Zeit^^
Beiträge von SenorGonzales
-
-
So, ich hab das nochmal überarbeitet, aber er mosert immer noch in Zeile 4, das er "This method must return a result of typ boolean"
Java
Alles anzeigenimport java.util.*; public class Uebung5_2 { public static boolean armstrong (double t){ // Mir is klar, das hier was nicht stimmt, ich hab nur keine Ahnung, was... System.out.print("Die eingegebene Zahl ("+t); double h=0; //Hilfsvariable if (t==0){ return false;} else if (t<=10){ String s = Double.toString(t); //Float wird zu String umgewandelt, um die einzelnen Zahlen zu erhalten. double v = s.charAt(0); v=v-48; // Zahlenkorrektur h=Math.pow(v,v); if (t==h) return true; else return false;} else if (t>=10&&t<100){ String s = Double.toString(t); //Float wird zu String umgewandelt, um die einzelnen Zahlen zu erhalten. double v = s.charAt(0); double w = s.charAt(1); v=v-48; // Zahlenkorrektur w=w-48; h=Math.pow(v,v)+Math.pow(w,w); if (t==h) return true; else return false;} else if (t>=100&&t<1000){ String s = Double.toString(t); //Float wird zu String umgewandelt, um die einzelnen Zahlen zu erhalten. double v = s.charAt(0); double w = s.charAt(1); double x = s.charAt(2); v=v-48; // Zahlenkorrektur w=w-48; x=x-48; h=Math.pow(v,v)+Math.pow(w,w)+Math.pow(x, x); if (t==h) return true; else return false;} else if (t>=1000&&t<10000){ String s = Double.toString(t); //Float wird zu String umgewandelt, um die einzelnen Zahlen zu erhalten. double v = s.charAt(0); double w = s.charAt(1); double x = s.charAt(2); double y = s.charAt(3); v=v-48; // Zahlenkorrektur w=w-48; x=x-48; y=y-48; h=Math.pow(v,v)+Math.pow(w,w)+Math.pow(x, x)+Math.pow(y, y); if (t==h) return true; else return 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..."); double t = input.nextDouble(); if (armstrong(t)){ System.out.println(" ist eine Armstrongzahl");} else System.out.println("ist keine Armstrongzahl"); } }
Was mach ich da falsch?
-
Hmm, das mit den exp wusst ich zwar, aber ich bin ja nochnichmal so weit gekommen, das er das Rechnen angefangen hätte^^
v=v-48 mach ich, weil ich in ner class vorher schonmal mit Armstrongzahlen gerechnet hatte, und er mit beim wandeln von Int zu String das ganze um 48 erhöht ausgegeben hat.
Damals sah das so aus:
Code
Alles anzeigenpublic class Uebung4_3 { static String s; public static void main (String [] args){ System.out.println("Programm zur Ermittlung der Armstrongzahlen zwischen 100 und 999"); float t=100; //Testzahl mit Anfangswert 100, da das der geringste, 3-stellige Wert ist float h; //Hilfsvariable while (t<=999){ t++; String s = Float.toString(t); float x = s.charAt(0); float y = s.charAt(1); float z = s.charAt(2); x=x-48; //Zahlenkorrektur y=y-48; //Zahlenkorrektur z=z-48; //Zahlenkorrektur h=x*x*x+y*y*y+z*z*z; if (t==h) System.out.println("Armstrongzahl "+h); }}}
Ich glaub ich bau die Aufgabe nochmal neu auf
-
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
Alles anzeigenimport 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"); } }
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^^