入力:
整数n
である>=0
か、>=1
(f(0)
任意です)
出力:
n
以下のシーケンスの'番目の番号、またはn
'番目の番号までのシーケンス。
シーケンス:
(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
このシーケンスはどのように構築されますか?
f(n=0) = 0
(オプション)
f(n=1) = f(0) + n
または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
など。
または擬似コードで:
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
}
ただし、ご指摘のとおり、シーケンスには2つのパターンがあります。
0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,0, ,-1, ,...
,1, ,-3, ,5, ,-7, ,9, ,-11, ,13, ,-15, ,17, ,-19,...
したがって、同じシーケンスをもたらす他のアプローチももちろん完全に問題ありません。
チャレンジルール:
- 0インデックス付きの入力と1インデックス付きの入力は同じ結果になります(これは
f(0)
、0インデックス付き入力を含める場合にオプションである理由です)。 n
このシーケンスの '番目の数を出力できます。または、シーケンス全体で、n
'番目の番号を含みます。(つまりf(5)
、どちらか5
またはになり0,1,-1,-3,0,5
ます。)n
'th までのシーケンスを出力することを選択した場合、出力形式は柔軟です。リスト/配列、コンマ/スペース/改行区切り文字列、またはSTDOUTなどに出力できます。
- 除算(
/
)は整数/床の除算で、0に向かって丸められます(一部の言語の場合のように負の無限大に向かって丸められません)。
一般的なルール:
- これはcode-golfであるため、バイト単位の最短回答が優先されます。
コードゴルフ言語では、非コードゴルフ言語で回答を投稿することを妨げないでください。「任意の」プログラミング言語の可能な限り短い答えを考えてみてください。 - 回答には標準的な規則が適用されるため、STDIN / STDOUT、適切なパラメーターと戻り値型、完全なプログラムを持つ関数/メソッドを使用できます。あなたの電話。
- デフォルトの抜け穴は禁止されています。
- 可能であれば、コードのテストへのリンクを追加してください。
- また、必要に応じて説明を追加してください。
上記の追加のテストケースn=100
:
Input Output
1000 0
100000 0
123 -123
1234 -1
12345 12345
123456 0