Memasukkan:
Integer n
yang >=0
atau >=1
( f(0)
opsional)
Keluaran:
Angka n
'th dalam urutan di bawah ini, ATAU urutan ke atas dan termasuk nomor n
' th.
Urutan:
(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
Bagaimana urutan ini dibangun?
f(n=0) = 0
(opsional)
f(n=1) = f(0) + n
atau lainnya 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
.
Atau dalam pseudo-code:
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
}
Tetapi seperti yang Anda perhatikan ada dua pola dalam urutan:
0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,...
,1, ,-3, ,5, ,-7, ,9, ,-11, ,13, ,-15, ,17, ,-19,...
jadi setiap pendekatan lain yang menghasilkan urutan yang sama tentu saja baik-baik saja juga.
Aturan tantangan:
- Input 0-diindeks dan 1-diindeks akan menghasilkan hasil yang sama (itulah sebabnya
f(0)
opsional untuk input 0-diindeks jika Anda ingin memasukkannya). - Anda diizinkan untuk menampilkan
n
nomor ke-5 dari urutan ini. Atau seluruh urutan ke atas dan termasukn
nomor ke '. (Jadif(5)
bisa menghasilkan salah satu5
atau0,1,-1,-3,0,5
.)- Jika Anda memilih untuk menampilkan urutan hingga dan termasuk nomor
n
'th, format output fleksibel. Dapat berupa string daftar / larik, koma / spasi / baris baru atau dicetak ke STDOUT, dll.
- Jika Anda memilih untuk menampilkan urutan hingga dan termasuk nomor
- Divide (
/
) adalah pembagian integer / floor, yang membulatkan ke arah 0 (tidak menuju infinity negatif seperti halnya dalam beberapa bahasa).
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa pun'. - Aturan standar berlaku untuk jawaban Anda, jadi Anda diperbolehkan menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program penuh. Panggilanmu.
- Celah default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda.
- Juga, silakan tambahkan penjelasan jika perlu.
Kasus uji tambahan di atas n=100
:
Input Output
1000 0
100000 0
123 -123
1234 -1
12345 12345
123456 0