sicily 1020. Big Interger 有数学公式
2014-04-18 11:32
281 查看
//大数取模,模为整型,运用到数学公式
式1表示一个数,式2是关于10^n mod c 的递推公式。对于式3,赋值前,k是前面10^(n-1)数量级的和取模的结果,每步进行递推,最后即可得到结果。另外需要记录一个变量专门存储10^n mod c的值
#include <cstdio>
#include <iostream>
#include <string>
using namespace std;
int mod[100];
int bigIntMod(string num, int mod)
{
int result = (num[num.size() - 1] - '0') % mod ,
result10 = 1 % mod;
for (int i = num.size() - 2; i >= 0; i--){
result10 = ((10 % mod) * (result10 % mod) ) % mod;
result = ( result + ((num[i] - '0') % mod * (result10 % mod) ) % mod ) % mod;
}
return result;
}
int main()
{
int testCase;
scanf("%d",&testCase);
while ( testCase-- ){
int numCount;
scanf("%d",&numCount);
for ( int i = 0 ; i < numCount; i++){
scanf("%d",&mod[i]);
}
string num;
cin >> num;
printf("(%d",bigIntMod(num,mod[0]));
for ( int i = 1 ; i < numCount; i++)
printf(",%d",bigIntMod(num,mod[i]));
printf(")\n");
}
return 0;
}
式1表示一个数,式2是关于10^n mod c 的递推公式。对于式3,赋值前,k是前面10^(n-1)数量级的和取模的结果,每步进行递推,最后即可得到结果。另外需要记录一个变量专门存储10^n mod c的值
#include <cstdio>
#include <iostream>
#include <string>
using namespace std;
int mod[100];
int bigIntMod(string num, int mod)
{
int result = (num[num.size() - 1] - '0') % mod ,
result10 = 1 % mod;
for (int i = num.size() - 2; i >= 0; i--){
result10 = ((10 % mod) * (result10 % mod) ) % mod;
result = ( result + ((num[i] - '0') % mod * (result10 % mod) ) % mod ) % mod;
}
return result;
}
int main()
{
int testCase;
scanf("%d",&testCase);
while ( testCase-- ){
int numCount;
scanf("%d",&numCount);
for ( int i = 0 ; i < numCount; i++){
scanf("%d",&mod[i]);
}
string num;
cin >> num;
printf("(%d",bigIntMod(num,mod[0]));
for ( int i = 1 ; i < numCount; i++)
printf(",%d",bigIntMod(num,mod[i]));
printf(")\n");
}
return 0;
}
相关文章推荐
- 高中数学_直线方程一些公式
- 数学不只是一堆公式,正如天文学不只是一堆望远镜
- 相关数学理论和公式(同余问题)
- 数学不只是一堆公式,正如天文学不只是一堆望远镜
- Lucene学习总结之六:Lucene打分公式的数学推导 2014-06-25 14:20 384人阅读 评论(0) 收藏
- 庆祝!终于会输入数学公式了
- poj 3761 Panda's Birthday Present (数学公式推导~~推?)
- hdu5407CRB and Candies (逆元+数学公式)
- 高等数学:第五章 定积分(1)概念与性质 中值定理 微积分基本公式
- Lucene学习总结之六:Lucene打分公式的数学推导
- MathType初体验——一款很好用的数学公式输入工具
- python学习 2数学公式
- markdown、作业部落、中的数学公式总结
- 在MarkDown中使用LaTeX编辑数学公式
- 李群,李代数知识点总结(无数学公式)
- latex 数学公式
- 编辑数学公式绘制曲线
- 数学公式排版测试
- 数学公式
- 高等数学公式积累