Menu
Coddy logo textTech

פתרון ללא לולאות

שיעור 3 מתוך 20 בקורס חידות מתמטיות של Coddy.

את האתגר הקודם אפשר לפתור בקלות באמצעות לולאות. עם זאת, אם N גדול — למשל N=10**9 — זמן הריצה עלול להיות ארוך, ארוך מאוד.

אם פתרת את האתגר הקודם בלי לולאות — זה נהדר, ואתה טוב מאוד גם בתכנות וגם במתמטיקה. אם לא, השיעור הזה מיועד לך.

דרך אחרת היא לחשב ישירות את הסכום של כל סדרה חשבונית.

אם ידועים לך האיבר הראשון, a1, האיבר האחרון, an, ומספר האיברים, n, הסכום הוא:

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

challenge icon

אתגר

קל

השתמשו בנוסחת הסכום כדי לחשב את הפתרון לאתגר.

כתבו פונקציה calc שמקבלת מספר שלם N כקלט ומחזירה את סכום הכפולות של 3 או 5 הקטנות מ־N .

לדוגמה, עבור N=10 הפונקציה תחזיר 23

טיפ - חלקו את הקוד שלכם לפונקציות קטנות יותר.

נסו בעצמכם

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

כל השיעורים ביחידה חידות מתמטיות

7הכפולה המשותפת הקטנה ביותר

מבואבעיה

10פלינדרומים

מבואאלגוריתם 196

2כפולות של 3 או 5

בעיהפתרון ללא לולאות

5משוואה דיופנטית

מבואבעיה

6המחלק המשותף הגדול ביותר

מבואהאלגוריתם האוקלידיפונקציית פי

9מספרים בינאריים

מבוא

תרגלו בעצמכם: קומפיילר C אונליין