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
Wyzwanie
ŁatwyUż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
Poćwicz samodzielnie: Kompilator C online