Bazen birden fazla girişle matematik problemi çalıştırmak faydalı olabilir. Bu zorluğun amacı bu görevi kolaylaştıran bir program yapmaktır.
Sayı üreten ifadeler
3 tür ifadeyi desteklemelisiniz:
- Tek sayı üreteci: Çok basit, sadece gerçek bir sayı
- Çok sayı üreteci: Biraz daha karmaşık. Parmaklar köşeli parantez (
[]
) ile çevrilidir . Sayılar,
ifadede virgülle ( ) ayrılır. Örnek[-1,2,3.26]
. - Menzil üreteci: Bu, kıvırcık parantez (
{}
) ile çevrilidir . Virgülle ayrılmış 3 sayı olacaktır. Bu ifadenin biçimi{start,stop,step}
.start
vestop
kapsayıcı.
Değerlendirme kuralları
- İşlem sırasını desteklemelisiniz. ( https://en.wikipedia.org/wiki/Order_of_operations#Definition )
- Parantezi desteklemenize gerek yoktur.
- İfadede herhangi bir sayıda boşluk oluşabilir.
- Kayan nokta sayılarını desteklemelisiniz (dilinizin varsayılan değeri ne olursa olsun iyi).
0
Sonuçlara göre bölümlemeNaN
(sayı değil).
Programınız çarpma ( *
), bölme ( /
), toplama ( +
) ve çıkarma ( -
) işlevlerini desteklemelidir .
Çıktı
Her çıkış hattı, jeneratörlerin kombinasyonlarından biridir. Biçim, ifade (gerçek sayılar ikame edilmiş) ve ardından eşittir işareti ( =
) ve değerlendirmenin sonucudur. Jeneratörlerin tüm kombinasyonları çıktıda temsil edilmelidir.
Örnekler
( >>>
girişi gösterir)
>>>3 * [3,2]
3 * 3 = 9
3 * 2 = 6
>>>{1,2,3}
1 = 1 <-- this is because 1 + 3 > the end
>>>{0,2,1} + {0,1,1}
0 + 0 = 0
1 + 0 = 1
2 + 0 = 2
0 + 1 = 1
1 + 1 = 2
2 + 1 = 3
>>>6/[2,3]
6/2 = 3
6/3 = 2
>>>{1.5,2.5,0.5}
1.5 = 1.5
2 = 2
2.5 = 2.5
>>>3-{6,5,-1}
3-6 = -3
3-5 = -2
>>>5/{-1,1,1}
5/-1 = -5
5/0 = NaN
5/1 = 5
>>>4.4 / [1,2.2] + {0,2,1}
4.4 / 1 + 0 = 4.4
4.4 / 1 + 1 = 5.4
4.4 / 1 + 2 = 6.4
4.4 / 2.2 + 0 = 2
4.4 / 2.2 + 1 = 3
4.4 / 2.2 + 2 = 4
>>> [1,2] / 0 + 5
1 / 0 + 5 = NaN
2 / 0 + 5 = NaN
Programın kısa olması gerekir, böylece onu ezberler ve her yerde kullanabilirim.
@PeterTaylor ve @geokavel'e sandbox'ta bu gönderiyle yardımcı olduğun için teşekkürler
x/0
NaN için anında değerlendirme ile sonuçlanır mı, yoksa NaN'ı bir değer olarak mı değerlendirmem gerekir?