Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

A solution with no loops

الدرس 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;
}

جميع دروس ألغاز رياضية

2Multiples of 3 or 5

A problemA solution with no loops

5Diophantine Equation

IntroductionA problem