• 高精度练习


    题目背景

    进制题目,而且还是个计算器~~

    题目描述

    话说有一天,小Z乘坐宇宙飞船,飞到一个美丽的星球。因为历史的原因,科技在这个美丽的星球上并不很发达,星球上人们普遍采用B(2<=B<=36)进制计数。星球上的人们用美味的食物招待了小Z,作为回报,小Z希望送一个能够完成B进制加法的计算器给他们。 现在小Z希望你可以帮助他,编写实现B进制加法的程序。

    输入输出格式

    输入格式:

    共3行第1行:一个十进制的整数,表示进制B。第2-3行:每行一个B进制数正整数。数字的每一位属于{0,1,2,3,4,5,6,7,8,9,A,B……},每个数字长度<=2000位。

    输出格式:

    一个B进制数,表示输入的两个数的和。

    输入输出样例

    输入样例#1: 复制
    4
    123
    321
    
    输出样例#1: 复制
    1110

    说明

    进制计算器

    #include <iostream>
    #include <algorithm>
    using namespace std;
    string add(string s1,string s2,int N){
        string ans;
        int len1 = s1.length()-1;
        int len2 = s2.length()-1;
        int s =0,re = 0;
        for(int i=0;i<s1.length();++i){
            if(isalpha(s1[i])){
                s1[i] = s1[i] - 'A' + 10;
            }else{
                s1[i] = s1[i] - '0';
            }
        }
        for(int i=0;i<s2.length();++i){
            if(isalpha(s2[i])){
                s2[i] = s2[i] - 'A' + 10;
            }else{
                s2[i] = s2[i] - '0';
            }
        }
        while(len1 >=0 || len2 >=0){
            s = re;
            if(len1 >=0) s += s1[len1--];
            if(len2 >=0) s += s2[len2--];
            re = s/N;
            ans += s%N;
        }
        if(re)    ans+= re;
        reverse(ans.begin(),ans.end());
        for(int i=0;i<ans.length();++i){
            if(ans[i] >= 10)
                ans[i] += 'A' - 10;
            else
                ans[i] += '0';
        }
        return ans;
    }
    
    int main(){
        int N;
        string s1,s2;
        cin >> N;
        cin >> s1 >> s2;
        cout << add(s1,s2,N);
        return 0;
    }
  • 相关阅读:
    Chrome(google 浏览器) 几个有用的插件
    unity创建Android原生插件
    C#中运算符
    Unity 动画播完时关闭动画
    Could not obtain connection to query metadata : An attempt by a client to checkout a Connection has timed out.]
    nginx将ip+端口号映射为域名
    GlassFish To prevent a memory leak, the JDBC Driver has been forcibly unregistered
    视频
    iOS App上架流程(2016详细版
    证书说明(二)
  • 原文地址:https://www.cnblogs.com/--zz/p/10645832.html
Copyright © 2020-2023  润新知