C# :: Aufgabe #385 :: Lösung #4
4 Lösungen

#385
Zahl ist Summe von Potenzwerten zur Basis 3
Anfänger - C#
von JKooP
- 18.04.2021 um 12:49 Uhr
Gegeben ist eine Integer-Zahl im Bereich von 1 bis 1.000.000.
Es soll geprüft werden, ob sich diese Zahl als Summe von Potenzwerten
zur Basis 3 darstellen lässt. Die Reihenfolge der Exponenten ist unerheblich.
Beispiele:
n = 12
Lösung: wahr => 12 = 3^1 + 3^2
n = 91
Lösung: Wahr => 3^0 + 3^2 + 3^4
n = 105
Lösung: Falsch
Erstelle eine Methode/Funktion, die für obige Aufgabenstellung als Ergebnis true/false zurückgibt.
Viel Spaß
Es soll geprüft werden, ob sich diese Zahl als Summe von Potenzwerten
zur Basis 3 darstellen lässt. Die Reihenfolge der Exponenten ist unerheblich.
Beispiele:
n = 12
Lösung: wahr => 12 = 3^1 + 3^2
n = 91
Lösung: Wahr => 3^0 + 3^2 + 3^4
n = 105
Lösung: Falsch
Erstelle eine Methode/Funktion, die für obige Aufgabenstellung als Ergebnis true/false zurückgibt.
Viel Spaß
#4

von JKooP (18090 Punkte)
- 20.04.2021 um 20:36 Uhr
NET 5.x; C# 9.x; VS-2019
Ich bin mathematisch an die Aufgabe herangegangen. Umwandlung in eine ternäre Zahl.
Enthält die Zahl die Ziffer 2, so ist sie nicht als Summe von Potenzwerten zur Basis 3 darstellbar.
C#-Code
Ich bin mathematisch an die Aufgabe herangegangen. Umwandlung in eine ternäre Zahl.
Enthält die Zahl die Ziffer 2, so ist sie nicht als Summe von Potenzwerten zur Basis 3 darstellbar.

using System; using System.Linq; Enumerable.Range(1, 100).ToList().ForEach(x => Console.WriteLine($"{x,3} {IsPowersOfThree(x)}")); static bool IsSumOfPowersOfThree(int n) { while (n > 0) { if (n % 3 == 2) return false; n /= 3; } return true; }
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1