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

إضافة اللمسة الجديدة

جزء من قسم Fundamentals في رحلة R على Coddy — الدرس 55 من 78.

challenge icon

التحدي

سهل

في الدرس السابق، قمت بإنشاء برنامج FizzBuzz الذي يمر عبر الأرقام باستخدام القواسم الافتراضية 3 و 5. الآن، أضف لمسة جديدة بجعل القواسم قابلة للتخصيص من خلال المعلمات الافتراضية (default parameters).

قم بتعديل دالة fizzbuzz الخاصة بك لتقبل ثلاث وسائط:

  • n - الرقم المراد التحقق منه (مطلوب)
  • fizz_divisor - القاسم الخاص بـ "Fizz" (اختياري، القيمة الافتراضية هي 3)
  • buzz_divisor - القاسم الخاص بـ "Buzz" (اختياري، القيمة الافتراضية هي 5)

يجب أن تستخدم الدالة هذه القواسم المخصصة بدلاً من القيم الثابتة عند التحقق من قابلية القسمة.

ستتلقى ثلاثة أسطر من المدخلات:

  1. الحد الأقصى n
  2. قاسم fizz
  3. قاسم buzz

قم بالمرور في حلقة تكرارية من 1 إلى n واستدعِ دالة fizzbuzz المحدثة مع جميع الوسائط الثلاثة. اطبع كل نتيجة.

على سبيل المثال، إذا كانت المدخلات هي:

10
2
3

يجب أن تكون المخرجات:

[1] "1"
[1] "Fizz"
[1] "Buzz"
[1] "Fizz"
[1] "5"
[1] "FizzBuzz"
[1] "7"
[1] "Fizz"
[1] "Buzz"
[1] "Fizz"

إذا كانت المدخلات هي:

15
3
5

يجب أن تكون المخرجات:

[1] "1"
[1] "2"
[1] "Fizz"
[1] "4"
[1] "Buzz"
[1] "Fizz"
[1] "7"
[1] "8"
[1] "Fizz"
[1] "Buzz"
[1] "11"
[1] "Fizz"
[1] "13"
[1] "14"
[1] "FizzBuzz"

جرّب بنفسك

# Read input
con <- file("stdin", "r")
n <- as.numeric(suppressWarnings(readLines(con, n = 1)))

# Function from previous lesson
check_divisible <- function(number, divisor) {
  return(number %% divisor == 0)
}

# Create the fizzbuzz function
fizzbuzz <- function(n) {
  if (check_divisible(n, 3) && check_divisible(n, 5)) {
    return("FizzBuzz")
  } else if (check_divisible(n, 3)) {
    return("Fizz")
  } else if (check_divisible(n, 5)) {
    return("Buzz")
  } else {
    return(as.character(n))
  }
}

# Loop through numbers from 1 to n and print the result
for (i in 1:n) {
  print(fizzbuzz(i))
}

جميع دروس Fundamentals