Giriş:
Tam sayı n
olduğu >=0
ya da >=1
( f(0)
isteğe bağlı olarak)
Çıktı:
Aşağıdaki sıradaki n
'sayı' VEYA n
'numaraya kadar olan sayı' ya kadar .
Sıra:
(0),1,-1,-3,0,5,-1,-7,0,9,-1,-11,0,13,-1,-15,0,17,-1,-19,0,21,-1,-23,0,25,-1,-27,0,29,-1,-31,0,33,-1,-35,0,37,-1,-39,0,41,-1,-43,0,45,-1,-47,0,49,-1,-51,0,53,-1,-55,0,57,-1,-59,0,61,-1,-63,0,65,-1,-67,0,69,-1,-71,0,73,-1,-75,0,77,-1,-79,0,81,-1,-83,0,85,-1,-87,0,89,-1,-91,0,93,-1,-95,0,97,-1,-99
Bu dizi nasıl oluşturulur?
f(n=0) = 0
(isteğe bağlı)
f(n=1) = f(0) + n
veya f(n=1) = 1
f(n=2) = f(1) - n
f(n=3) = f(2) * n
f(n=4) = f(3) / n
f(n=5) = f(4) + n
vs.
Veya sözde kodda:
function f(integer n){
Integer result = 0
Integer i = 1
Loop as long as i is smaller than or equal to n
{
if i modulo-4 is 1:
result = result plus i
if i modulo-4 is 2 instead:
result = result minus i
if i modulo-4 is 3 instead:
result = result multiplied with i
if i modulo-4 is 0 instead:
result = result integer/floor-divided with i
i = i plus 1
}
return result
}
Ancak belirtmiş olabileceğiniz gibi, dizide iki desen vardır:
0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,...
,1, ,-3, ,5, ,-7, ,9, ,-11, ,13, ,-15, ,17, ,-19,...
dolayısıyla aynı sekansla sonuçlanan diğer yaklaşımlar da elbette tamamen iyidir.
Zorluk kuralları:
- 0 dizinli ve 1 dizinli girişler aynı sonuca neden olur (bu nedenle,
f(0)
eklemek istediğinizde 0 dizinli girişler için isteğe bağlıdır). n
Bu sıranın 'nci sayısını çıkarmanıza izin verilir . Ya da dizinin tamamı yukarı ven
"numara" dahil . (Yanif(5)
ya5
da ile sonuçlanabilir0,1,-1,-3,0,5
.)n
Sekansı 'sayıya kadar ' dahil etmeyi seçerseniz , çıktı formatı esnektir. Liste / dizi, virgül / boşluk / yeni satırla ayrılmış dize olabilir veya STDOUT'a vb. Yazdırılabilir.
- Divide (
/
), 0'a yuvarlanan tamsayı / kat bölümüdür (bazı dillerde olduğu gibi negatif sonsuza doğru değil).
Genel kurallar:
- Bu kod golf , bayt en kısa cevap kazanır.
Kod golf dillerinin, kod yazmayan dillerle yanıt göndermenizi engellemesine izin vermeyin. 'Herhangi bir' programlama dili için mümkün olduğunca kısa bir cevap bulmaya çalışın. - Cevabınız için standart kurallar geçerlidir , bu nedenle STDIN / STDOUT, fonksiyonlar / yöntem uygun parametreler ve dönüş tipi, tam programlar ile kullanılabilir. Çağrınız.
- Varsayılan Loopholes yasaktır.
- Mümkünse, lütfen kodunuz için test içeren bir bağlantı ekleyin.
- Ayrıca, gerekirse bir açıklama ekleyin.
Yukarıdaki ek test örnekleri n=100
:
Input Output
1000 0
100000 0
123 -123
1234 -1
12345 12345
123456 0