1022 D进制的A+B (20 分)

输入两个非负 10 进制整数 A 和 B (≤),输出 A+B 的 D (1)进制数。

输入格式:

输入在一行中依次给出 3 个整数 A、B 和 D。

输出格式:

输出 A+B 的 D 进制数。

输入样例:

123 456 8

输出样例:

1103

进制转换(P进制转Q进制):

步骤:

1. 将P进制数转成10进制

给定一个2进制数1011,将其转成10进制: $1*10^3 + 1*10^2 +0*10^1+1*10^0$ = 11

C++实现:

 // P进制转10进制
int PtoTen(int x, int P)
{
int result = ;
int product = ;
while (x != )
{
result = result + (x % ) * product;
x = x / ;
product = product * P;
}
return result;
}
2.将10进制数转成Q进制

采用“除基(Q)取余法”

给定一个10进制数:17,将其转成2进制

17 / 2 = 8, 余1

8 / 2 = 4 余0

4 / 2 = 2 余0

2 / 2 = 1 余0

1 / 2 = 0 余1

计算结束

接着将余数从后往前(从下往上)输出,得到的10001就是17的二进制数

C++实现

 // 10进制转Q进制
void tenToQ(int x, int Q)
{
vector<int> left; //保存余数
do
{
left.push_back(x % Q);
x /= Q;
} while (x != );
//反向输出余数
for (auto it = left.rbegin(); it != left.rend(); ++it)
{
cout << *it;
}
}

注意:用do while是因为,如果10进制数恰好等于0,应该输出余数0,如果是while循环,则不会保存余数

题目分析:

将A和B相加,再按照上面的内容转化成D进制就可以了

 #include <iostream>
#include <vector>
using namespace std; void tenToQ(int x, int Q)
{
vector<int> left;
do
{
left.push_back(x % Q);
x /= Q;
} while (x != ); for (auto it = left.rbegin(); it != left.rend(); ++it)
{
cout << *it;
}
} int main()
{
int A, B, D;
cin >> A >> B >> D;
tenToQ(A + B, D);
return ;
}


PAT 乙级 1022.D进制的A+B C++/Java的更多相关文章

  1. PAT乙级 1022. D进制的A+B (20)

    1022. D进制的A+B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 输入两个非负10进制整数A和 ...

  2. PAT Basic 1022 D进制的A+B (20 分)

    输入两个非负 10 进制整数 A 和 B (≤),输出 A+B 的 D (1)进制数. 输入格式: 输入在一行中依次给出 3 个整数 A.B 和 D. 输出格式: 输出 A+B 的 D 进制数. 输入 ...

  3. PAT——乙级1022:D进制的A+B &乙级1037:在霍格沃茨找零钱

    1022 D进制的A+B (20 point(s)) 输入两个非负 10 进制整数 A 和 B (≤2​30​​−1),输出 A+B 的 D (1<D≤10)进制数. 输入格式: 输入在一行中依 ...

  4. PAT (Basic Level) Practise (中文)- 1022. D进制的A+B (20)

    PAT (Basic Level) Practise (中文)-  1022. D进制的A+B (20)  http://www.patest.cn/contests/pat-b-practise/1 ...

  5. PAT (Basic Level) Practice (中文)1022 D进制的A+B

    1022 D进制的A+B 输入两个非负 10 进制整数 A 和 B (≤2^30^−1),输出 A+B 的 D (1<D≤10)进制数. 输入格式: 输入在一行中依次给出 3 个整数 A.B 和 ...

  6. PAT (Basic Level) Practice (中文)1022 D进制的A+B (20分)

    1022 D进制的A+B (20分) 输入两个非负 10 进制整数 A 和 B ( ≤ 2​30​​ −1),输出 A+B 的 D (1<D≤10)进制数. 输入格式: 输入在一行中依次给出 3 ...

  7. PAT-乙级-1022. D进制的A+B (20)

    1022. D进制的A+B (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 输入两个非负10进制整数A和 ...

  8. *1022. D进制的A+B【考前最后一道题】

      /* *Main.c *1022. D进制的A+B Ver.1 *Created on : 2014.9.5 *****测试通过****** */ #include <stdio.h> ...

  9. 1022. D进制的A+B (20)

    1022. D进制的A+B (20) 时间限制 100 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 输入两个非负10进制整数A和 ...

随机推荐

  1. [Gamma]Scrum Meeting#8

    github 本次会议项目由PM召开,时间为6月3日晚上10点30分 时长15分钟 任务表格 人员 昨日工作 下一步工作 木鬼 撰写博客,组织例会 撰写博客,组织例会 swoip 前端显示屏幕,翻译坐 ...

  2. top命令输出解释以及load average 详解及排查思路

    原地址: https://blog.csdn.net/zhangchenglikecc/article/details/52103737 1.top输出以及load average 详解 昨天nagi ...

  3. A Philosophy of Software Design

    关于复杂性,尚无统一的定义,从不同的角度可以给出不同的答案.可以用数量来度量,比如芯片集成的电子器件越多越复杂(不一定对):按层次性[2]度量,复杂度在于层次的递归性和不可分解性.在信息论中,使用熵来 ...

  4. AKKA HTTP 简单示例

    AKKA HTTP 简单示例 依赖包: compile("com.typesafe.akka:akka-http_2.13:10.1.8") compile("com.t ...

  5. WPF 营销管理平台

    利用空闲时间计划开发一款开源的营销商城平台,项目写的不够规范,有需要可以看看 项目介绍: 前端使用 WPF,采用MVVM模式  后端数据库采用的sqlite 依靠本地化运行   后期可能会采用WebA ...

  6. fp-growth代码问题(Python)

    网上的 python3 fp-growth代码每次在执行时可能会出现找出的频繁项集不一致的情况,这是因为每次执行代码时建的FP树可能不一致. 加了一行代码可以解决这个问题(第59行):先对 frequ ...

  7. Mysql 学习参考

    [1]Mysql 基础知识 (1)<Mysql 官网> (2)<菜鸟教程之Mysql数据库教程> (3)<C语言中文网之Mysql数据库栏> (4)<W3Sc ...

  8. AGC035

    Contest Page A 唯一会做的题/kk 题目相当于要求相邻三个的异或和为\(0\). 当我们放入了三个数\(a,b,c\)时,接下来的放入顺序显然一定是\(a,b,c,a,b,c,...\) ...

  9. Prometheus监控学习笔记之容器监控Grafana模块

    0x00 概述 Grafana 是一个开源的,可以用于大规模指标数据的可视化项目,甚至还能对指标进行报警.基于友好的 Apache License 2.0 开源协议,目前是prometheus监控展示 ...

  10. Linux学习笔记之秋水BBR一键部署

    0x00 本脚本适用环境 系统支持:CentOS 6+,Debian 7+,Ubuntu 12+内存要求:≥128M 阅读文章时请除手动删出干扰字符“1”.(Shadowsocks) 0x01 关于本 ...