我给我的代码4个测试用例,每个测试用例包含3个数字。在第一个测试用例中,一切都很好。在第二个测试用例中,程序将读取前两个数字,但会停止而不读取第三个数字,并且程序将无错误终止。
我试图注释掉一些函数,当我注释掉整个内部for循环和combine_congruences(m)
行时,程序将接收所有输入。但是,即使我取消了for循环和combine_congruences(m)
行的注释,该代码也不再接受输入并终止。 ll是long long int的宏。
int main(){
ll t, n, r, m;
cin >> t;
cout << "t is: " << t << endl;
for(int i = 0; i < t; i++){
cout << "TEST CASE " << i << endl;
cin >> n;
cout << "read n: " << n << endl;
cin >> r;
cout << "read r: " << r << endl;
cin >> m;
cout << "read m: " << m << endl;
factorize(m);
printVl(factors);
for(int j = 0; j < factors.size(); i++){
cout << "factor no:" << j << endl;
ll temp = lucas_ncr(n, r, factors[j]);
answers.pb(temp);
}
ll ans = combine_congruences(m);
cout << ans << endl;
answers.clear();
}
}
我可以根据需要提供功能。我提供的输入是:
4
5 2 1001
5 2 6
20 6 210
13 4 39