[PRO] Armstrong nummer

[PRO] Armstrong nummer

Een getal is een narcistisch getal of armstronggetal als het de som is van zijn eigen cijfers elk tot de macht verheven van het aantal cijfers.

  • 9 is een Armstrong nummer, want 9 = 9^1 = 9
  • 10 is geen Armstrong nummer, want 10 != 1^2 + 0^2 = 1
  • 153 is een Armstrong nummer, want: 153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
  • 154 is geen Armstrong nummer, want: 154 != 1^3 + 5^3 + 4^3 = 1 + 125 + 64 = 190

Schrijf een programma dat aan de gebruiker een getal vraagt en vervolgens toont of het ingevoerde getal een Armstrong-nummer is of niet.

Je zou deze oefening kunnen oplossen door het ingevoerde getal als string op te splitsen in individuele char’s. Maar ik raad je aan om de “wiskunde” weg te volgen zodat je terdege leert met loops en wiskunde te werken.

Tip 1: Stel dat je het getal 4560 hebt:

  • Eerst deel je 4563 door 1000. Dit geeft 4.
  • We trekken 4×1000 van 4563 af. Dit geeft 563.
  • Deel 563 door 100. Dit geeft 5.
  • We trekken 5×100 van 563 af. Dit geeft 63.
  • Deel 63 door 10. Dit geeft 6.
  • We trekken 6 x 10 van 63 af. Dit geeft 3

Tip 2: Je kan aan een string vragen hoe groot deze is als volgt:

int lengte= myInputGetal.Length;  //veronderstellend dat myInputGetal van het type string is

Je kan dan nu met Math.Pow(10,lengte-1) berekenen vanaf welke exponent van 10 we moeten beginnen werken.