zoukankan      html  css  js  c++  java
  • acwing794. 高精度除法

    给定两个非负整数(不含前导 0)A,B,请你计算 A/B 的商和余数。

    输入格式

    共两行,第一行包含整数 A,第二行包含整数 B。

    输出格式

    共两行,第一行输出所求的商,第二行输出所求余数。

    数据范围

    1≤A的长度≤100000,
    1≤B≤10000,
    B 一定不为 0

    输入样例:

    7
    2
    

    输出样例:

    3
    1
    

    方法一:

    高精度除法比较好写:将被除数a的高位逐位加进来除被除数b,余数用p存起来,保存当前商位(<10)。最后处理一下前导0,输出

    #include <bits/stdc++.h>
    using namespace std;
    
    char a[100010];
    int b;
    
    int main() {
        scanf("%s%d", &a, &b);
        int la = strlen(a) - 1;
        for (int i = 0; i <= la; i++) a[i] -= '0';
    
        int p = 0;
        vector<int> res;
        for (int i = 0; i <= la; i++) {
            p *= 10; p += a[i];
            res.push_back(p/b);
            p = p % b;
        }
    
        int i = 0;
        while (i < res.size() && !res[i]) i++;
        if (i == res.size()) printf("0");
        else while (i < res.size()) printf("%d", res[i++]);
    
        printf("\n%d", p);
    }
    
  • 相关阅读:
    2017.8.15
    2017.8.14
    2017.8.12
    2017.8.11
    2017.8.10
    IE9下透明度设置无效
    IE7不支持Z-index问题
    IE9下支持jQuery
    IE9下支持css3的方法
    oninput、onpropertychange和onchange
  • 原文地址:https://www.cnblogs.com/nosae/p/15821852.html
Copyright © 2011-2022 走看看