Solusi tanpa perulangan
Pelajaran 3 dari 20 dalam kursus Teka-teki Matematika di Coddy.
Tantangan sebelumnya mudah diselesaikan menggunakan perulangan. Namun, jika N besar, misalnya N=10**9, waktu eksekusinya mungkin lama, bahkan sangat lama.
Jika kamu menyelesaikan tantangan sebelumnya tanpa perulangan, itu hebat, dan kamu sangat mahir dalam pemrograman maupun matematika. Jika tidak, pelajaran ini cocok untukmu.
Cara lainnya adalah menghitung langsung jumlah setiap deret aritmetika.
Jika kamu mengetahui suku pertama, a1, suku terakhir, an, dan jumlah suku, n, jumlahnya adalah:
S = n * (a1+an)//2
Tantangan
MudahGunakan rumus penjumlahan untuk menghitung solusi tantangan ini.
Tulis fungsi calc yang menerima bilangan bulat N sebagai input dan mengembalikan jumlah kelipatan 3 atau 5 yang kurang dari N .
Sebagai contoh, untuk N=10, fungsi akan mengembalikan 23
Petunjuk: Pisahkan kodemu menjadi fungsi-fungsi yang lebih kecil.
Coba sendiri
#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;
}
Semua pelajaran di Teka-teki Matematika
Latihan sendiri: Compiler C online