//长数取余,逐步移位,把余数往后移动。
#include <iostream>;
#include <string>
using namespace std;
int main() {
int times;
int numberOfBasis;
int basis[105];
char veryLongInteger[400];
int result[105];
cin >> times;
while (times) {
cin >> numberOfBasis;
for (int i = 0; i < numberOfBasis; i++)
cin >> basis[i];
string bigNum;
cin >> bigNum;
int k = 0;
for (k; k < bigNum.length(); k++)
veryLongInteger[k] = bigNum[k];
for (int j = 0; j < numberOfBasis; j++) {
int temp = 0;
for (int i = 0; i < k; i++) {
temp *= 10;
temp += (veryLongInteger[i] - '0');
temp %= basis[j];
}
result[j] = temp;
}
cout << "(";
for (int i = 0; i < numberOfBasis - 1; i++) {
cout << result[i] << ",";
}
cout << result[numberOfBasis - 1] << ")" << endl;
// cout << "Input check correct!" << endl;
times--;
}
return 0;
}
参考链接 http://www.cnblogs.com/growing/archive/2011/12/18/2292061.html