在本教程中,我们将解决以下问题。
给定一个整数n,我们必须找到(1 n +2 n +3 n +4 n)%5
如果n大,则数字(1 n +2 n +3 n +4 n)将非常大。它也不适合长整数。因此,我们需要找到替代解决方案。
如果您对数字1,2,3,4,5,6,7,8,9求解方程式,您将分别获得10、30、100、354、1300、4890、18700、72354、282340值。
仔细观察方程式的结果。您会发现方程式结果的最后一位数字每第4个数字重复一次。这是方程的周期性。
如果不实际计算方程式,我们可以说
如果n%4 == 0,那么(1 n +2 n +3 n +4 n)%5将为4,否则为0。
让我们看一下代码。
#include <bits/stdc++.h> using namespace std; int findSequenceMod5(int n) { return (n % 4) ? 0 : 4; } int main() { int n = 343; cout << findSequenceMod5(n) << endl; return 0; }输出结果
如果运行上面的代码,则将得到以下结果。
0