提交时间:2026-01-04 15:08:07
运行 ID: 80218
#include <iostream> #include <iomanip> // 用于 setw 和 setfill,但这里用格式化字符串更方便 using namespace std; // 快速幂取模函数:计算 (base^exp) % mod int fastPowMod(int base, int exp, int mod) { int result = 1 % mod; // 初始化为 1 % mod,安全处理 mod=1 的情况 base %= mod; // 先取模,缩小底数 while (exp > 0) { if (exp & 1) { // 指数当前位为1 result = (result * base) % mod; } base = (base * base) % mod; // 底数平方 exp >>= 1; // 指数右移一位 } return result; } int main() { int a, b; cin >> a >> b; // 计算 a^b % 1000 int lastThree = fastPowMod(a, b, 1000); // 输出三位数,不足三位补零 // 方法1:使用 printf 格式化输出(最简洁) // printf("%03d\n", lastThree); // 方法2:使用 cout 配合 setw 和 setfill(需要iomanip) cout << setw(3) << setfill('0') << lastThree << endl; return 0; }