解法思路: 首先将高精度数a转换为整数类型,然后依次除以低精度数b、c、d,得到商的整数部分。最后输出最后一次除法的结果。

C++代码实现:

#include <iostream>
using namespace std;

int main() {
    string a;
    int b, c, d;
    cin >> a >> b >> c >> d;

    int num = 0;
    for (int i = 0; i < a.length(); i++) {
        num = num * 10 + (a[i] - '0');
        num = num % b;
    }

    num = num % c;
    num = num % d;

    cout << num << endl;
    return 0;
}

时间复杂度分析: 转换高精度数a的时间复杂度为O(n),其中n为a的长度。而除法的时间复杂度为O(1),因此总的时间复杂度为O(n)。

C++题目描述在数学中我们经常会遇到数据的连除在高精度中也存在连除式本体请同学们设计一个程序输入被除数:高精度数a以及除数:低精度数b低精度数c低精度数d。最后输出连除的结果。注意:本题不保留小数直接向下取整。输入描述4行第1行包含1个高精度数a。其余每行行包含1个低精度数代表连除的除数。输出描述1行即连除的结果。样例1输入1000222输出125提示对于100的数据0=a=10^2001=低精度

原文地址: https://www.cveoy.top/t/topic/iyI6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录