Menu
Coddy logo textTech

Una soluzione senza cicli

Lezione 3 di 20 del corso Indovinelli matematici di Coddy.

La sfida precedente si risolve facilmente usando i cicli. Tuttavia, se N è grande, per esempio N=10**9, il tempo di esecuzione potrebbe essere lungo, molto lungo.

Se hai risolto la sfida precedente senza cicli, è fantastico e sei molto bravo, sia nella programmazione che in matematica. Se non ci sei riuscito, questa lezione fa per te.

Un altro modo consiste nel calcolare direttamente la somma di ogni progressione aritmetica.

Se conosci il primo termine, a1, l'ultimo termine, an, e il numero di termini, n, la somma è:

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

challenge icon

Sfida

Facile

Usa la formula della somma per calcolare la soluzione della sfida.

Scrivi una funzione calc che accetta in input un intero N e restituisce la somma dei multipli di 3 o 5 minori di N .

Ad esempio, per N=10, la funzione restituirà 23

Suggerimento: suddividi il codice in funzioni più piccole.

Provalo tu

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

Tutte le lezioni di Indovinelli matematici

2Multipli di 3 o 5

Un problemaUna soluzione senza cicli

5Equazione diofantea

IntroduzioneUn problema

Esercitati da solo: Compilatore C online