zoukankan      html  css  js  c++  java
  • 洛谷 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++,学了面向对象后就可以自己封装一个高精度计算器了

  • 相关阅读:
    drf 反序列化
    drf学习 第一天 序列化器
    flex学习之作用在items上的属性
    flex学习之align-content
    flex学习之flex-wrap
    flex学习之align-itmes
    flex弹性盒子中jstify-content
    将主机变为服务器,ssh连接出现access denied
    为什么用tensor不用array?
    深度学习之Epoch、Batch、Iteration
  • 原文地址:https://www.cnblogs.com/harutomimori/p/11242772.html
Copyright © 2011-2022 走看看