zoukankan      html  css  js  c++  java
  • SOJ 1020 Big Integer

    题目大意: 输入T,表示测试样例总数。对每个样例,首先输入n(n ≤ 10),接下来有n个数输入,计作b1...bn,最后输入x,其中x是一个非常大不超过400字符的长正整数。

    限制条件:1 < bi ≤ 1000,  1 ≤ i ≤ n 且 gcd(bi, bj) = 1 ,  (1 ≤ i, j ≤ n, i ≠ j)

         让M = b1 * b2 * ... * bn , x < M

    输出:x % bi  = ri

      格式: (r1,r2,...,rn)

    解题思路:

      由于长正整数x非常大,不能用基本类型保存。模拟除法运算求余数。

    代码如下:

     1 #include <iostream>
     2 #include <string>
     3 #include <cstring>
     4 using namespace std;
     5 
     6 int char2Int(char ch) {
     7     return ch - '0';
     8 }
     9 
    10 int main() {
    11     string str;
    12     int T, n;
    13     const int MAXN = 105;
    14     int b[MAXN];
    15     int m[MAXN];
    16     memset(b, sizeof b, 0);
    17     // memset(m, sizeof m, 0);
    18 
    19     cin >> T;
    20     while (T--) {
    21         // 输入
    22         cin >> n;
    23         for (int i = 0; i < n; i++) {
    24             cin >> b[i];
    25         }
    26         cin >> str;
    27 
    28         // 计算
    29         memset(m, 0, sizeof m);    // 太久没用memset,给忘了,没有正确初始化。
    30         for (int i = 0; i < str.length(); i++) {
    31             int next = char2Int(str[i]);
    32             for (int j = 0; j < n; j++) {
    33                 // cout << j << ": ( " << m[j] << " * 10 + " << next << " ) % " << b[i] << " = ";
    34                 m[j] = (m[j] * 10 + next) % b[j];
    35                 // cout << m[j] << endl;
    36             }
    37         }
    38 
    39         // 输出
    40         cout << "(" << m[0];
    41         for (int i = 1; i < n; i++) {
    42             cout << "," << m[i];
    43         }
    44         cout << ")" << endl;
    45     }
    46     
    47     return 0;
    48 }
  • 相关阅读:
    P4718 [模板]Pollard-Rho算法
    python爬虫模板
    Codeforces1248F. Catowice City
    P3980 [NOI2008]志愿者招募 (费用流)
    P2805 [NOI2009]植物大战僵尸 (拓扑排序 + 最小割)
    P3157 [CQOI2011]动态逆序对
    P2634 [国家集训队]聪聪可可 (点分治)
    HDU6703 array (线段树)
    Codeforces750E. New Year and Old Subsequence (线段树维护DP)
    Codeforces301D. Yaroslav and Divisors
  • 原文地址:https://www.cnblogs.com/mchcylh/p/4833278.html
Copyright © 2011-2022 走看看