C# :: Aufgabe #358 :: Lösung #2

5 Lösungen Lösungen öffentlich
#358

Divisionsrest (Modulo) aus einer Zahl und ihrer Ziffern

Anfänger - C# von JKooP - 11.02.2021 um 19:17 Uhr
Ziel soll es sein, eine beliebige Integer-Zahl dahingehend zu überprüfen,
ob die Zahl dividiert durch jede ihrer Ziffern immer den Rest 0 ergibt (Modulo = mod).

Dazu soll eine Methode/Funktion erstellt werden, die zwei Integer-Zahlen (Min, Max) aufnimmt
und alle Lösungen im angegebenen Bereich (Min-Max) als Integer-Array zurückgibt.

Beispiel:

Min = 1
Max = 20
Lösung: = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 15 ]

Erläuterung (Auszug):

Zahl 9: 9 mod 9 = 0 => true (gilt für jede einstellige Zahl)
Zahl 10: 10 mod 1 = 0; 10 mod 0 = 10 => false, da nicht beide den Rest 0 haben
Zahl 12: 12 mod 1 = 0; 12 mod 2 = 0 => true
Zahl 14: 14 mod 1 = 0; 14 mod 4 = 2 => false, da nicht beide den Rest 0 haben

Viel Spaß
#2
vote_ok
von Frank (410 Punkte) - 22.02.2021 um 21:23 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Text;

namespace DivisionstestModulo
{
    class Program
    {
        static void Main(string[] args)
        {
            int minValue = 1;
            int maxValue = 20;

            StringBuilder sb = new StringBuilder();

            for (int i = minValue; i <= maxValue; i++)
            {
                bool isModuloZero = false;
                char[] digits = i.ToString().ToCharArray();

                foreach (char diget in digits)
                {
                    double nDiget = Char.GetNumericValue(diget);
                    if (nDiget == 0)
                    {
                        isModuloZero = false;
                        break;
                    }
                    double diff = i / nDiget;
                    double rest = diff - Math.Truncate(diff);
                    if (rest == 0)
                        isModuloZero = true;
                    else
                    {
                        isModuloZero = false;
                        break;
                    }
                }
                if (isModuloZero)
                    sb.Append($"{i}, ");
            }
            Console.WriteLine(sb);
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben