FOJ1650-A^B mod C解题报告
来源:互联网 发布:python 调用c dll 编辑:程序博客网 时间:2024/06/08 12:53
新浪博客 发表时间 --2009-07-26 20:11:01
题解:
解法一:可套公式,A*B mod C=((A mod C)*(B mod C) mod C ;A^B mod C=(A mod C)^(B mod C) mod C。
数据如果过大,则要考虑其他方法,此题的解法用到了逐次平方法(幂模运算)。具体实现过程参考数论相关的书籍。
需要注意的是,要小心溢出问题,比如a=a*b%c,如果简单这样计算的时候,如果a足够大的时候,就会导致溢出,处理方法为取a二进制值第一位乘以b与c模算加上a右移一位与相乘再和c做模运算后的值左移一位相加,再将相加的值和c做模运算,递归此过程,过程结束标志为a=0。
代码:
#include<stdio.h>
unsigned long long mul(unsigned long long a,unsigned long long b,unsigned long long c)
{
unsigned long long int a1=a,b1=b,c1=c;
if(!a1)
}
unsigned long long mod(unsigned long long a,unsigned long long b,unsigned long long c)
{
}
int main()
{
}
解法二:
unsigned long long mul(unsigned long long a,unsigned long long b,unsigned long long c)
{
unsigned long long ret=0,tmp=a%c;
while(b)
{
}
return ret;
}
这个函数是网上找的,现在是看不懂,研究中....
解法三:
代码:
#include "stdio.h"
int power(int a,int b,int c)
{
}
int main()
{
}
- FOJ1650-A^B mod C解题报告
- A^B mod C
- A^B mod C
- A^B mod C
- 解题报告(A,B,C)
- codeforces # 285 解题报告A.B.C
- CodeForce 837 A/B/C解题报告
- BIT1044 A^B mod C
- 1046 A^B Mod C
- 1046 A^B Mod C
- 求a^b mod c
- 1046 A^B Mod C
- 1046 A^B Mod C
- Super A^B mod C
- 1046 A^B Mod C
- A - A+B(解题报告)
- (A^B mod C)|(a^(n!) mod c)
- CodeForces #213 (Div. 2) A,B,C 解题报告
- 第七周任务(1)
- 信息资源管理
- 随笔
- 素数打表
- 注册表命令大全
- FOJ1650-A^B mod C解题报告
- eclipse输入点号没有提示解决大全
- JBoss与Tomcat的区别
- 再学java基础(4)Object流、Serializable序列化、transient
- 集合知识点学习总结
- plist的读取和写入(增删改)附demo 见文章结尾
- 第七周实验报告(3)
- Cplex 关闭自动输出求解信息
- Linux设备驱动学习(7) 内存分配