Python CodeWars Aufgabe?


20.05.2021, 19:11

für alle die kein codewars account haben, hier die fragestellung:

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23.

Finish the solution so that it returns the sum of all the multiples of 3 or 5 below the number passed in.

Note: If the number is a multiple of both 3 and 5, only count it once. Also, if a number is negative, return 0(for languages that do have them)

2 Antworten

Benutze Modulo um zu überprüfen, ob eine Zahl durch eine andere Zahl restlos geteilt werden kann.

def solution(number):
   list = []
   for i in range(number):
       if i%3 == 0 or i%5 == 0:
           list.append(i)
   return sum(list)

Geht übrigens auch als Einzeiler ^^

return sum(i for i in range(number) if i%3 == 0 or i%5 == 0)
Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf
SinCosTanCot 
Fragesteller
 20.05.2021, 19:13

danke! ich weiß zwar von modulo und sum(), daran habe ich aber gar nicht gedacht! viel glück noch mit deinem studium! wie machst du die code einbettungen? ich hab die bei der fragestellung nicht gefunden!

1
MrAmazing2  20.05.2021, 19:15
@SinCosTanCot

Vielen Dank ^^

Rechts oben beim Textfeld ist so ein Menü mit Formatierungs-Optionen.

Dick

Kursiv

Überschrift
Zitat
und eben der Codeblock.

Markier deinen Code und klick dann dort </> an.

1

Ach ja, die gute alte FizzBuzz-Aufgabe

als ich ihn auf codewars eingereicht habe, sagte mir der compiler, das es einen timeout gegeben hat, da der code mehr als 12000 ms, also 12 sek gebraucht hat! ich habs in vscode getestet, da gehts in so 2 sek!

2 Sekunden ist schon relativ lang dafür, dass du nur einen Test durchlaufen lässt. Ich hab die Aufgabe kurz als Einzeiler gelöst und es sind 105 (!) Tests auf der Seite, nicht nur einer.

Bild zum Beitrag

Kleiner Tipp, um deine Zeit zu verringern: Schau dir mal den Modulo-Operator an - dieser gibt dir den Rest einer Division. "Multiples of 3" hast du, wenn die Zahl % 3 == 0 ist. Entsprechend auch für Modulo 5

PS: der code funktioniert, hab ihn getestet!

Guter Code muss nicht nur "funktionieren", sondern auch "effizient funktionieren" ...

 - (Computer, Technik, Technologie)