Menu
Coddy logo textTech

A solution with no loops

Leçon 3 sur 20 du cours Énigmes mathématiques de Coddy.

Le défi précédent est facilement résolu en utilisant des boucles. Cependant, si N est grand - par exemple N=10**9 - le temps d'exécution pourrait être long, très long.

Si vous avez résolu le défi précédent sans boucles - c'est génial, et vous êtes très bon, tant en programmation qu'en mathématiques. Si vous ne l'avez pas fait, cette leçon est pour vous.

Une autre façon consiste à calculer directement la somme de chaque suite arithmétique.

Si vous connaissez le premier terme, a1, le dernier terme, an, et le nombre de termes, n, la somme est :

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

challenge icon

Défi

Facile

Utilisez la formule de la somme pour calculer la solution du défi.

Écrivez une fonction calc qui prend un entier N en entrée et retourne la somme des multiples de 3 ou 5 inférieurs à N .

Par exemple pour N=10 la fonction retournera 23

Conseil - Séparez votre code en plus petites fonctions.

Essayez vous-même

#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;
}

Toutes les leçons de Énigmes mathématiques

2Multiples of 3 or 5

A problemA solution with no loops

5Diophantine Equation

IntroductionA problem