Files
python/TangDou/CSP-J/AcWingTraining/T6/424_Test_34.cpp
HuangHai 1f397eca87 'commit'
2025-08-30 18:35:01 +08:00

36 lines
1.1 KiB
C++

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
int main() {
LL base = 34; // 数字n
int digits = 2; // 后2位
LL mod = 100;
int k = 20; // 执行多少次方模拟
LL result = 1; // Initialize result (base^0 = 1)
map<LL, int> st; // Track positions of trailing digits
int cycle_start = -1, cycle_length = -1;
for (int i = 1; i <= k; i++) {
result = (result * base) % mod; // Calculate trailing digits of base^i
printf("%d^%2d = %40lld trailing digits: %02lld",
base, i, (LL)pow(base, i), result);
if (st[result]) {
cycle_start = st[result];
cycle_length = i - cycle_start;
printf(" \n\nCycle detected! Starts at %d, length = %d\n",
cycle_start, cycle_length);
break;
}
st[result] = i;
printf("\n");
}
if (cycle_length != -1) {
cout << "\n============================\n";
cout << "Simulation result: Trailing 2 digits cycle length = " << cycle_length << endl;
}
return 0;
}