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. Navicat连接mysql数据库2003-Can't connect to Mysql server on 'xxx' (10060 "Unknown error")

    使用root账号连接MySQL 1,登录 mysql -u用户名 -p                回车后输入密码 2, use mysql 3,输入下面命令,显示root为localhost本地登 ...

  2. windows下SVN使用 Add指令、Undo Add指令

    前几天,使用SVN的Add指令添加了一个文件,后不使用直接删除了,每次提交都存在,解决后记录方法,希望帮到大家,此外如果大家有好的方法,希望可以回复. 问题:使用Add添加文件后直接删除了文件,每次提 ...

  3. ASP.NET Core WebApi基于Redis实现Token接口安全认证

    一.课程介绍 明人不说暗话,跟着阿笨一起玩WebApi!开发提供数据的WebApi服务,最重要的是数据的安全性.那么对于我们来说,如何确保数据的安全将会是需要思考的问题.在ASP.NET WebSer ...

  4. cad.net 2008使用WPF(摘录山人)

    由于WPF的优点多多,而且在大量的winform的操作下感觉到数据操作的麻烦....推荐大家看杨中科WPF数据绑定教程 https://www.bilibili.com/video/av3388348 ...

  5. 基于springboot的flowable工作流实例实现

    基于springboot的flowable工作流实例实现 flowableUI 创建实例教程 https://www.cnblogs.com/nanstar/p/11959389.html Flowa ...

  6. 网络基础 ----------- osi 与 一些协议

    1.了解 OSI ISO IOS ISO(全称:International Organization for Standardization) 国际标准化组织, 成立于1947年2月23日,制定全世界 ...

  7. APUE之第5章——标准I/O库

    一.知识回顾:文件I/O 文件 I/O 是不带缓冲的 I/O(unbuffered I/O),指每个 read 和 write 都调用内核中的一个系统调用. 对于内核而言,所有打开的文件都通过文件描述 ...

  8. Java 最常见 200+ 面试题全解析:面试必备

    本文分为十九个模块,分别是: Java 基础.容器.多线程.反射.对象拷贝.Java Web .异常.网络.设计模式.Spring/Spring MVC.Spring Boot/Spring Clou ...

  9. gcc 编译过程

    gcc 编译过程从 hello.c 到 hello(或 a.out)文件, 必须历经 hello.i. hello.s. hello.o,最后才得到 hello(或a.out)文件,分别对应着预处理. ...

  10. Spring Boot 复习

    简介 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭 建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义 ...