0
私はジョセフスの数を計算するコードを書いていました。コードを正しく取得するために数字を試していただけです。これは私が書いたコードです:これは正しいですJosephus番号を検索するためのこのCコードはどのように機能しますか?
int answer(int n, int k) {
if (n == 0) {
return 0;
} else {
return (answer(n - 1, k) + k + 1) % n + 1;
}
}
(私はいつもk = 0
を保つ)が、今、私は理由を知りません。
私はそれを手動でトレースしようとしましたが、同じ回答は得られませんでした。
answer(2,0)
=>((answer(1,0))+1)%3
=>((((answer(0,0))+1)%2)+1)%3
=>((1%2)+1)%3
=>(1+1)%3
=>2
:
は、これは、私はそれがうまくいくと思う方法です。
しかし、答えは1
です。
説明できますか?
その1 1理由%1 = 0が、私は今それを理解して返します。ありがとう!! :D – San
まったく正しい。どういたしまして ! –