当前位置: 首页 > news >正文

高精度练习 - P1604 B进制星球

题目背景

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

题目描述

话说有一天,小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;
}

 

转载于:https://www.cnblogs.com/--zz/p/10645832.html

相关文章:

  • 小组第四次冲刺
  • 设计模式入门----设计模式的7大原则与23种设计模式概述(转载)
  • Jenkins手把手图文教程[基于Jenkins 2.164.1]
  • Kubernetes如何通过Device Plugins来使用NVIDIA GPU
  • 极乐技术周报(第二十三期)
  • django.db.utils.OperationalError: (1049, Unknown database 'djangodb')
  • Vue2.0 实现互斥
  • Mongodb 分片集群部署
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • SSL证书过期替换之踩坑总结
  • mysql_config_editor使用简介
  • 2、Android-UI(常用控件)
  • 简述C和C++的学习历程
  • Python使用数据库的基本流程
  • Mybatis 级联查询时只查出了一条数据
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • 10个确保微服务与容器安全的最佳实践
  • 77. Combinations
  • C++类的相互关联
  • Docker容器管理
  • JSONP原理
  • mysql外键的使用
  • node.js
  • Otto开发初探——微服务依赖管理新利器
  • PhantomJS 安装
  • Swift 中的尾递归和蹦床
  • uva 10370 Above Average
  • 测试开发系类之接口自动化测试
  • 程序员最讨厌的9句话,你可有补充?
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何打造100亿SDK累计覆盖量的大数据系统
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 算法-图和图算法
  • 项目实战-Api的解决方案
  • 找一份好的前端工作,起点很重要
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • puppet连载22:define用法
  • 进程与线程(三)——进程/线程间通信
  • ​2021半年盘点,不想你错过的重磅新书
  • ​ArcGIS Pro 如何批量删除字段
  • #git 撤消对文件的更改
  • (windows2012共享文件夹和防火墙设置
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (读书笔记)Javascript高级程序设计---ECMAScript基础
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (三)终结任务
  • (转)http协议
  • (状压dp)uva 10817 Headmaster's Headache
  • ***测试-HTTP方法
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .mysql secret在哪_MySQL如何使用索引