問題が説明この回答の "q = i - 4;"のコードを理解するにはどうすればよいですか?
数列次のように定義される:
A、Bを考えるf(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7.
、およびnは、F(n)の値を計算することです。
入力
入力は、複数のテストケースから構成されています。各テストケースには、1行に3つの整数A、B、およびnが含まれています(1 < = A、B < = 1000、1 < = n < = 100,000,000)。 3つのゼロは入力の終わりを知らせ、このテストケースは処理されません。
各テストケースに対する出力
、単一ライン上のF(n)の値を印刷します。
サンプル入力
1 1 3
1 2 10
0 0 0
サンプル出力
2
5
コード
#include <iostream>
using namespace std;
int f[54] = {0, 1, 1};
int main()
{
int A, B, n, q = 1;
while (cin >> A >> B >> n && A && B && n)
{
for (int i = 3; i < 54; ++i)
{
f[i] = (A * f[i - 1] + B * f[i - 2]) % 7;
if (i > 4)
{
if (f[i - 1] == f[3] && f[i] == f[4]) //here too
{
q = i - 4; //I can't catch the point
}
}
}
cout << f[n % q] << endl;
}
return 0;
}
これは宿題ですか? – Ho1
なぜあなたはコードを書いた人に尋ねないのですか? – user463035818
'cin >> A >> B >> n && A && B && n'はかわいいです。あなたがそれを書いたらあなたは専門家であり、あなたはこの質問をしていません。これはあなたのコードですか? – Bathsheba