IT-Programm-Entwickler


http://it-tipps-und-tricks.de/tipps-tricks/1/4/110/armstrongzahlen-ermitteln/

Druckversion / Zur Bildschirmversion



Tipps & Tricks

Beispiel: 153
Exponent: 3, (Da die Zahl aus 3 Ziffern besteht)

1*1*1 + 5*5*5 + 3*3*3 = 153


public class Main {

    public static void main(String[] args) {
        Main m = new Main();
        int x = 0;
        int y = 99999;
        int zaehler = 0;
        for (int zahl = x; zahl <= y; zahl++) {
            if (m.isArmstrong("" + zahl)) {
                System.out.println("Ist eine Armstrongzahl");
                zaehler++;
                System.out.println(zahl);
            }
        }
        System.out.println(zaehler + " Armstrongzahlen");
    }

    public int countZiff(String zahl) {
        int cz = 0;
        if (zahl.contains("-")) {
            System.out.println("Zahl muss positiv sein!");
        } else {
            cz = zahl.length();
        }
        return cz;
    }

    public int potenziere(int zahl, int pot) {
        int erg = 1;
        if (pot > 0) {
            for (int i = 1; i <= pot; i++) {
                erg = erg * zahl;
            }
        }
        return erg;
    }

    public boolean isArmstrong(String zahl) {
        int erg = 0;
        int ziffAnz;
        // Zifferanzahl
        ziffAnz = countZiff(zahl);
        for (int i = 0; i < ziffAnz; i++) {
            // Ziffer hoch Zifferanzahl
            erg = erg + potenziere(zahl.charAt(i) - 48, ziffAnz);
        }
        if (zahl.equals("" + erg)) {
            return true;
        } else {
            return false;
        }
    }
}

 

Bewerten
     


Powered by Koobi:CMS 7 © dream4®