Farklılığı Ekleme
Coddy'nin R Journey'sinin Temeller bölümünün bir parçası — ders 55 / 78.
Görev
KolayÖnceki derste, varsayılan bölenler olan 3 ve 5'i kullanarak sayılar arasında dönen bir FizzBuzz programı oluşturdunuz. Şimdi, bölenleri varsayılan parametreler aracılığıyla özelleştirilebilir hale getirerek bir değişiklik ekleyin.
fizzbuzz fonksiyonunuzu üç argüman kabul edecek şekilde değiştirin:
n- kontrol edilecek sayı (gerekli)fizz_divisor- "Fizz" için bölen (isteğe bağlı, varsayılan değeri3)buzz_divisor- "Buzz" için bölen (isteğe bağlı, varsayılan değeri5)
Fonksiyon, bölünebilirliği kontrol ederken sabit değerler yerine bu özel bölenleri kullanmalıdır.
Üç satırlık girdi alacaksınız:
- Üst sınır
n - Fizz böleni
- Buzz böleni
1'den n'e kadar döngü kurun ve güncellenmiş fizzbuzz fonksiyonunuzu her üç argümanla birlikte çağırın. Her sonucu yazdırın.
Örneğin, girdiler şunlarsa:
10
2
3Çıktı şöyle olmalıdır:
[1] "1"
[1] "Fizz"
[1] "Buzz"
[1] "Fizz"
[1] "5"
[1] "FizzBuzz"
[1] "7"
[1] "Fizz"
[1] "Buzz"
[1] "Fizz"Eğer girdiler şunlarsa:
15
3
5Çıktı şöyle olmalıdır:
[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"Kendin dene
# 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))
}Temeller bölümündeki tüm dersler
4Operatörler Bölüm 2
Mantıksal Operatörler (AND, OR)Mantıksal Operatörler Bölüm 2 (NOT)Özet - Basit MantıkVektörize Mantık Bölüm 1Vektörize Mantık Bölüm 27Hesap Paylaşım Hesaplayıcısı
Hoş Geldiniz MesajıKullanıcıdan Girdi Alma10Farklı Bir FizzBuzz
Oyuna Genel BakışFizzBuzz Fonksiyonu2Değişkenler ve Veri Tipleri
Sayısal Veri TipiTam Sayı Veri TipiKarakter Veri TipiMantıksal Veri TipiVeri Tiplerini Kontrol Etmeİsimlendirme KurallarıEksik Değerler: NAÖzet - Değişken Oluşturma8Döngüler
For DöngüsüWhile DöngüsüBreakNext (Continue)Özet - FaktöriyelDizi Oluşturma (seq, :)İç İçe DöngülerÖzet - Dinamik Girdi3Operatörler 1. Bölüm
Aritmetik OperatörlerTam Sayı Bölmesi ve Mod AlmaAtama OperatörleriÖzet - Basit MatematikKarşılaştırma Operatörleri6Temel Giriş-Çıkış
Print ÇıktısıÇıktı için Cat KullanımıDeğişkenlerle Çıktı Almakreadline() ile Girdi OkumaTip Dönüşümü TemelleriÖzet - Yaş HesaplayıcıÖzet - Doğru mu Yanlış mı9Fonksiyonlar
Fonksiyon TanımlamaFonksiyon ArgümanlarıDönüş DeğerleriÖzet - Sigma FonksiyonuÖzet - Doğrulama FonksiyonuVarsayılan Parametre Değerleri