Menu
Coddy logo textTech

A solution with no loops

Lektion 3 von 20 im Kurs Mathematische Rätsel von Coddy.

Die vorherige Herausforderung lässt sich leicht mit Schleifen lösen. Wenn N jedoch groß ist – zum Beispiel N=10**9 – könnte die Laufzeit lang sein, sehr lang.

Wenn Sie die vorherige Herausforderung ohne Schleifen gelöst haben – das ist großartig, und Sie sind sehr gut, sowohl im Programmieren als auch in Mathematik. Falls nicht, ist diese Lektion für Sie.

Ein anderer Weg ist die direkte Berechnung der Summe jeder arithmetischen Folge.

Wenn Sie das erste Glied, a1, das letzte Glied, an, und die Anzahl der Glieder, n, kennen, ist die Summe:

S = n * (a1+an)//2

challenge icon

Aufgabe

Einfach

Verwenden Sie die Summenformel, um die Lösung für die Herausforderung zu berechnen.

Schreiben Sie eine Funktion calc, die eine Ganzzahl N als Eingabe erhält und die Summe der Vielfachen von 3 oder 5 unterhalb von N zurückgibt.

Zum Beispiel für N=10 wird die Funktion 23 zurückgeben.

Tipp - Unterteilen Sie Ihren Code in kleinere Funktionen.

Probier es selbst

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "solution.h"

int main() {
    int n;
    if (scanf("%d", &n) != 1) n = 0;
    int r = calc(n);
    printf("%d\n", r);
    return 0;
}

Alle Lektionen in Mathematische Rätsel

2Multiples of 3 or 5

A problemA solution with no loops

5Diophantine Equation

IntroductionA problem