/*
1020. Big Integer大数求模
题目大意:
给出n个整数b1,b2,...,bn,和一个大整数x,求x对每个数bi取模的结果。
n<=100, 1<bi<=1000, x的长度不超过400。
解题思路:
对bi逐个计算;高精度,模拟竖式计算。
int div(char x[], int b) {
int a=0;
for (int i=0;x[i]!='\0';i++) {
a=(a*10+x[i]-'0')%b;
return a;
}
*/
#include <iostream>
#include <cstdlib>
using namespace std;
int main(){
int T;
cin >> T;
int n;
string x;
int b[101];
int r[101];
for(int i=1;i<=T;i++){
cin >> n;
for(int j=1;j<=n;j++){
cin >> b[j];
}
cin >> x;
for(int j=1;j<=n;j++){
int temp=0;
for(int k=0;k<x.length();k++){
//1.重点:字符串转化为数字 x[k]-'0';
//2.重点: 大数据处理采取字符串,并且采用数论求模方法(A+B)%C=(A%C+B%C)%C;应该死模拟除法过程
//3.重点:for循环谨记:i=0,则i<n;i=1,则i<=n;n为长度
temp =(((temp*10)%b[j])+((x[k]-'0')%b[j]))%b[j];
}
r[j] = temp;
}
cout <<"("<<r[1];
for(int j=2;j<=n;j++){
cout <<","<<r[j];
}
cout << ")"<<endl;
}
//system("pause"); // 头文件#include <cstdlib>
return 0;
}
/*
错误提示
1.main函数出错,编译不通过;
2.忘记字符串转化为数字
*/
1020. Big Integer大数求模
最新推荐文章于 2021-02-19 13:23:17 发布