Guten Abend,
und zwar habe ich ein Problem. Ich muss ein Armstrong Programm programmieren, wo der Benutzer/Anwender eine untere Grenze und obere Grenze eingibt und dann das Programm ausgibt, ob in diesem Intervall Armstrong Zahlen sind und wenn ja, diese auch Auflistet. Hier ist mein jetziges Programm:
Folgendes Problem: Das Programm geht nur bis 1000 und spuckt Armstrong Zahlen, die über 1000 sind, nicht mehr aus. Aber wenn ist anstatt "r*r*r" "r*r*r*r" schreibe, spuckt er mir nur Armstrong zahlen aus, die über 1000 sind. Hat jemand eine Idee, wie man des beheben könnte, dass er alle Zahlen, auch über 1000, ausspuckt, die Armstrong sind?
und zwar habe ich ein Problem. Ich muss ein Armstrong Programm programmieren, wo der Benutzer/Anwender eine untere Grenze und obere Grenze eingibt und dann das Programm ausgibt, ob in diesem Intervall Armstrong Zahlen sind und wenn ja, diese auch Auflistet. Hier ist mein jetziges Programm:
Java:
import java.util.Scanner;
public class Armstrong {
public static void main(String[] arg){
Scanner sc = new Scanner(System.in);
System.out.println("Bitte die untere Grenze einfügen: ");
int n = sc.nextInt();
System.out.print("Bitte die obere Grenze einfügen: ");
int l = sc.nextInt();
sc.close();
for(int i = n; i <=l; i++)
if(isArmstrong(i))
System.out.println(i + " ist eine Armstrongzahl!");
}
static boolean isArmstrong(int number) {
boolean isArmNumber = false;
int sum = 0;
int tempNum = number;
while (tempNum > 0) {
int r = tempNum % 10;
sum = sum + (r*r*r);
tempNum = tempNum / 10;
}
if (sum == number) {
isArmNumber = true;
}
return isArmNumber;
}
}
Folgendes Problem: Das Programm geht nur bis 1000 und spuckt Armstrong Zahlen, die über 1000 sind, nicht mehr aus. Aber wenn ist anstatt "r*r*r" "r*r*r*r" schreibe, spuckt er mir nur Armstrong zahlen aus, die über 1000 sind. Hat jemand eine Idee, wie man des beheben könnte, dass er alle Zahlen, auch über 1000, ausspuckt, die Armstrong sind?
Zuletzt bearbeitet: