A solution with no loops
Coddy'nin Matematiksel Bilmeceler kursunda ders 3 / 20.
Önceki görev döngüler kullanılarak kolayca çözülebilir. Ancak, N büyükse - örneğin N=10**9 - çalışma süresi uzun, çok uzun olabilir.
Önceki görevi döngü kullanmadan çözdüyseniz - bu harika ve hem programlamada hem de matematikte çok iyisiniz demektir. Eğer çözmediyseniz, bu ders sizin için.
Diğer bir yol, her bir aritmetik dizinin toplamını doğrudan hesaplamaktır.
İlk terimi a1, son terimi an ve terim sayısını n biliyorsanız, toplam şudur:
S = n * (a1+an)//2
Görev
KolayMücadeleyi çözmek için toplam formülünü kullanın.
Girdi olarak bir N tam sayısı alan ve N değerinin altındaki 3 veya 5'in katlarının toplamını döndüren bir calc fonksiyonu yazın.
Örneğin N=10 için fonksiyon 23 değerini döndürecektir.
İpucu - Kodunuzu daha küçük fonksiyonlara ayırın.
Kendin dene
#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;
}