Menu
Coddy logo textTech

Rozwiązanie bez pętli

Lekcja 3 z 20 w kursie Zagadki matematyczne w Coddy.

Poprzednie wyzwanie można łatwo rozwiązać za pomocą pętli. Jeśli jednak N jest duże — na przykład N=10**9 — czas działania może być długi, bardzo długi.

Jeśli udało Ci się rozwiązać poprzednie wyzwanie bez pętli — świetnie, jesteś bardzo dobry zarówno w programowaniu, jak i matematyce. Jeśli nie, ta lekcja jest dla Ciebie.

Innym sposobem jest bezpośrednie obliczenie sumy ciągu arytmetycznego.

Jeśli znasz pierwszy wyraz, a1, ostatni wyraz, an i liczbę wyrazów, n, suma wynosi:

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

challenge icon

Wyzwanie

Łatwy

Użyj wzoru na sumę, aby obliczyć rozwiązanie wyzwania.

Napisz funkcję calc, która przyjmuje liczbę całkowitą N jako dane wejściowe i zwraca sumę wielokrotności 3 lub 5 mniejszych od N .

Na przykład dla N=10 funkcja zwróci 23

Wskazówka — podziel swój kod na mniejsze funkcje.

Spróbuj swoich sił

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

Wszystkie lekcje w sekcji Zagadki matematyczne

7Najmniejsza wspólna wielokrotność

WprowadzenieProblem

2Wielokrotności 3 lub 5

ProblemRozwiązanie bez pętli

5Równanie diofantyczne

WprowadzenieProblem

Poćwicz samodzielnie: Kompilator C online