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

    https://www.acwing.com/problem/content/796/

    #include<bits/stdc++.h>
    using namespace std; 
    //   A/b   商是c  余数是r 
    vector<int> div(vector<int> &A, int b,int &r)  //r是引用 
    {
        vector<int>C;  //
        r=0;//余数 
        for(int i=A.size()-1;i>=0;i--)  //除法是从最高位开始 
        {
            r=r*10+A[i];  //把各位留出,再加上这一位的各位 
            C.push_back(r/b);  //商 是这一位整除b 
            r%=b;   //余数 
         } 
         reverse(C.begin(),C.end()); //因为最开始push的是c的最高位,和我们前面定义的大整数存法是反过来的
         //前面定义的大整数乘法是c【0】在最低位,是反过来的。所以要reverse一遍 
         while(C.size()>1&&C.back()==0)  C.pop_back();  //商可能存在前导0 
         return C;
    }
    int main()
    {
        string a;  //a很长,数位多     b很小,数位少 
        int b;
        cin>>a>>b;
        vector<int>A;
        for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');
        int r;//余数 
        auto C=div(A,b,r);
        for(int i=C.size()-1;i>=0;i--) cout<<C[i]; //输出商
        cout<<endl; 
        cout<<r<<endl;  //输出余数 
        return 0;
     } 
  • 相关阅读:
    (一)ngxin默认虚拟主机
    centos7 搭建LNMP
    centos7 搭建安装zabbix3.0邮件告警实例(二)
    Java BitSet(位集)
    OLTP与OLAP的区别
    Cassandra-LSM树
    LSM树
    Docker
    RESTful API
    kubernetes介绍
  • 原文地址:https://www.cnblogs.com/QingyuYYYYY/p/11757291.html
Copyright © 2011-2022 走看看