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

6 Lösungen Lösungen öffentlich
#366

Zweierpotenz (Power Of Two)

Anfänger - C# von JKooP - 06.03.2021 um 11:51 Uhr
Erstelle eine Methode/Funktion, mit der man bestimmen kann,
ob die übergebene Zahl als Ganzzahl- Potenz (Integer) zur Basis 2 geschrieben werden kann.

Beispiele:

Zahl: 1 => true
Lösung: 0, denn 2 hoch 0 = 1

Zahl: 16 => true
Lösung: 4, denn 2 hoch 4 = 16

Zahl: 3 => false
Lösung: keine, da keine Ganzzahl zur Basis 2 die Zahl 3 ergibt

Für Fortgeschrittene:
Die Aufgabe ohne Zuhilfenahme der eingebauten Logarithmusfunktionen lösen.

Viel Spaß
#2
vote_ok
von JakS (230 Punkte) - 08.03.2021 um 12:45 Uhr
Quellcode ausblenden C#-Code
    class Program
    {
        static void Main(string[] args)
        {
            int basis = 2;
            int z = 256;
            int r = IsBasis(z, basis);
            if (r > -1)
                Console.WriteLine("Zahl {0} => true, Lösung {1}", z, r);
            else
                Console.WriteLine("Zahl {0} => false, keine Lösung", z);
        }

        static int IsBasis(int z, int bas)
        {
            int ret = -1;
            int a = 0;
            int i = 0;

            if (a < z)
            {
                while (a < z)
                {
                    a = (int)Math.Pow(bas, i);
                    if (a == z)
                        ret = i;
                    else
                        i++;
                }
            }
            
            return ret;
        }
    }

Kommentare:

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

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