• 洛谷 P1604 B进制星球


    链接:https://www.luogu.org/problem/P1604

    题解:b进制下的高精度加法

    代码:

     1 #include<bits/stdc++.h>
     2 #define inf 0x3f3f3f3f
     3 using namespace std;
     4 typedef long long ll;
     5 typedef long double ld;
     6 const int M = int(1e6)*2 + 5;
     7 const int mod = 10056;
     8 inline int lowbit(int x) {
     9     return x & (-x);
    10 }
    11 
    12 int change(char& c){
    13     if(c>='0' && c<='9') return c-'0';
    14     if(c>='A' && c<='Z') return c-'A'+10;
    15 }
    16 char change(int& a){
    17     if(a>=0 && a<=9) return a+'0';
    18     else if(a>=10) return a-10+'A';
    19 }
    20 vector<int> A,B,Ans;
    21 string add(string& a,string& b,int& n){
    22     if(a.size()<b.size()) return add(b,a,n);
    23 
    24     string ans;
    25     A.clear();
    26     B.clear();
    27 
    28     for(int i=a.size()-1;i>=0;i--){
    29         A.push_back(change(a[i]));
    30     }
    31     for(int i=b.size()-1;i>=0;i--){
    32         B.push_back(change(b[i]));
    33     }
    34 
    35     int  t=0;
    36     for(int i=0;i<b.size();i++){
    37         int sum=t+A[i]+B[i];
    38         t=sum/n;
    39         Ans.push_back(sum%n);
    40     }
    41     for(int i=b.size();i<a.size();i++){
    42         int sum=A[i]+t;
    43         t=sum/n;
    44         Ans.push_back(sum%n);
    45     }
    46     if(t)
    47         Ans.push_back(t);
    48 
    49     for(int i=Ans.size()-1;i>=0;i--){
    50         char c=change(Ans[i]);
    51         ans+=c;
    52     }
    53 
    54     return ans;
    55 }
    56 
    57 int main()
    58 {
    59     int n;cin>>n;
    60     string a,b;
    61     cin>>a>>b;
    62     cout<<add(a,b,n);
    63     return 0;
    64 }

    备注:连续用python水了四道高精度,最后还是用c++,学了面向对象后就可以自己封装一个高精度计算器了

  • 相关阅读:
    Hive的安装
    ubuntu下能ping通ssh不通的解决思路
    ubuntu下pig报错ERROR 2999: Unexpected internal error. Failed to create DataStorage的解决
    Ubuntu系统中各种文件颜色的含义
    Hbase建表时遇到的问题This could be a sign that the server has too many connections
    Python
    Python
    Python
    Python
    Python
  • 原文地址:https://www.cnblogs.com/harutomimori/p/11242772.html
Copyright © 2020-2023  润新知