FZU 1752 A^B mod C(快速加、快速幂)
题目链接: 传送门
A^B mod C
Time Limit: 1000MS Memory Limit: 65536K
Time Limit: 1000MS Memory Limit: 65536K
思路
快速加和快速幂同时运用,在快速加的时候由于取模耗费不少时间TLE了,最后又进行了改写。
#include<stdio.h>
typedef __int64 LL;
LL mod_mulit(LL x, LL y,LL mod)
{
LL res = 0;
while (y)
{
if (y & 1)
{
res += x;
while (res >= mod)
{
res -= mod;
}
//res = (res + x) % mod; //取模运算耗费时间
}
x += x;
while (x >= mod)
{
x -= mod;
}
//x = (x + x) % mod;
y >>= 1;
}
return res;
}
LL mod_pow(LL x,LL n,LL mod)
{
LL res = 1;
while (n > 0)
{
if (n & 1)
{
res = mod_mulit(res, x, mod);
}
x = mod_mulit(x,x,mod);
n >>= 1;
}
return res;
}
int main()
{
LL A,B,C;
while (~scanf("%I64d %I64d %I64d",&A,&B,&C))
{
/*LL res = 1;
while (B > 0)
{
if (B & 1)
{
res = mod_mulit(res,A,C);
}
A = mod_mulit(A,A,C);
B >>= 1;
}*/
LL sum = mod_pow(A,B,C);
printf("%I64d\n",sum);
}
return 0;
}
┆ 凉 ┆ 暖 ┆ 降 ┆ 等 ┆ 幸 ┆ 我 ┆ 我 ┆ 里 ┆ 将 ┆ ┆ 可 ┆ 有 ┆ 谦 ┆ 戮 ┆ 那 ┆ ┆ 大 ┆ ┆ 始 ┆ 然 ┆
┆ 薄 ┆ 一 ┆ 临 ┆ 你 ┆ 的 ┆ 还 ┆ 没 ┆ ┆ 来 ┆ ┆ 是 ┆ 来 ┆ 逊 ┆ 没 ┆ 些 ┆ ┆ 雁 ┆ ┆ 终 ┆ 而 ┆
┆ ┆ 暖 ┆ ┆ 如 ┆ 地 ┆ 站 ┆ 有 ┆ ┆ 也 ┆ ┆ 我 ┆ ┆ 的 ┆ 有 ┆ 精 ┆ ┆ 也 ┆ ┆ 没 ┆ 你 ┆
┆ ┆ 这 ┆ ┆ 试 ┆ 方 ┆ 在 ┆ 逃 ┆ ┆ 会 ┆ ┆ 在 ┆ ┆ 清 ┆ 来 ┆ 准 ┆ ┆ 没 ┆ ┆ 有 ┆ 没 ┆
┆ ┆ 生 ┆ ┆ 探 ┆ ┆ 最 ┆ 避 ┆ ┆ 在 ┆ ┆ 这 ┆ ┆ 晨 ┆ ┆ 的 ┆ ┆ 有 ┆ ┆ 来 ┆ 有 ┆
┆ ┆ 之 ┆ ┆ 般 ┆ ┆ 不 ┆ ┆ ┆ 这 ┆ ┆ 里 ┆ ┆ 没 ┆ ┆ 杀 ┆ ┆ 来 ┆ ┆ ┆ 来 ┆
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)