1020. Big Integer大数求模

/*   
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.忘记字符串转化为数字
*/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值