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

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

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

输入格式:

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

输出格式:

输出 A+B 的 D 进制数。

输入样例:

123 456 8

输出样例:

1103

这道题可以用模拟手工的方法。

用穷举法,似乎也能做,但是应该会超时。

 

#include<iostream>
#include<math.h>
using namespace std;
void toD(int S, int D);
int main()
{
    int A, B,D;
    cin >> A >> B>>D;
    int S = A + B;
    toD(S, D);
    return 0;
}
void toD(int S,int D) {
    int maxP=0;
    for (int i = 0; i < 31; i++) {
        if (pow(D, i) <= S && pow(D,i+1)>S) {
            maxP = i;
            break;
        }
    }
    int *a = new int[maxP+1];
    for (int i = 0; i <= maxP; i++)
        a[i] = 0;
    int yu = S;
    for (int i = maxP; i >= 0; i--) {
        if (yu > 0) {
            for (int j = 0; j < D; j++) {
                if ((yu - j * pow(D, i) >= 0 && yu - (j + 1)* pow(D, i) < 0)) {
                    a[i] = j;
                    yu -= j * pow(D, i);
                }
            }
        }
    }
    for (int i = maxP; i >= 0; i--) {
        cout << a[i];
    }
}

网上看到这题有更简单的做法:

 

#include <iostream>
using namespace std;
int main() {
    int a, b, d;
    cin >> a >> b >> d;
    int t = a + b;
    if (t == 0) {
        cout << 0;
        return 0;
    }
    int s[100];
    int i = 0;
    while (t != 0) {
        s[i++] = t % d;
        t = t / d;
    }
    for (int j = i - 1; j >= 0; j--) {
        cout << s[j];
    }
    return 0;
}


不过,这样只能计算D<=10的情况(也就是题目的要求)。


相关文章
|
8月前
|
JavaScript 前端开发 算法
Vue 3 和 Vue 2 的区别及优点
Vue 3 和 Vue 2 的区别及优点
|
11月前
|
存储 资源调度 JavaScript
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具。npm 是官方默认的包管理器,提供依赖管理、安装和更新等功能;cnpm 是由阿里巴巴开发的 npm 镜像,专为中国大陆用户优化,解决下载速度慢的问题;pnpm 通过硬链接技术提高安装速度并节省磁盘空间,特别适合磁盘资源紧张的环境。三者命令类似,但各有特色,开发者可根据需求选择合适的工具。
1196 5
|
存储 监控 网络协议
深入理解非阻塞 TCP 连接:getsockopt 的关键作用
深入理解非阻塞 TCP 连接:getsockopt 的关键作用
1407 0
|
安全 机器人 程序员
Windows 计划任务每天隔 3 小时运行一次批处理文件详细配置步骤
Windows 计划任务每天隔 3 小时运行一次批处理文件详细配置步骤
2317 2
|
前端开发 JavaScript Java
npm与Maven:前端与后端构建工具深度对比学习
npm与Maven:前端与后端构建工具深度对比学习
593 0
|
Java Spring 容器
mapstruct
mapstruct
149 0
|
存储 编解码 Shell
shell对字符串转码GBK
shell对字符串转码GBK
176 0
|
存储 弹性计算 缓存
阿里云共享型、计算型、通用型、内存型云服务器最新价格表
阿里云服务器租用价格是多少?2023年,阿里云继续推出轻量应用服务器与共享型、计算型、通用型、内存型云服务器优惠,其中轻量应用服务器268元/年,共享型云服务器低至0.21元/天,计算型云服务器最低52.20元/3个月起,通用算力型u1云服务器45.84元/3个月起,通用型云服务器63.30元/3个月起,内存型云服务器78.90元/3个月起,详细配置及价格表见下文。
阿里云共享型、计算型、通用型、内存型云服务器最新价格表
现代控制理论课程实验二:利用状态观测器实现状态反馈的系统设计
现代控制理论课程实验二:利用状态观测器实现状态反馈的系统设计
现代控制理论课程实验二:利用状态观测器实现状态反馈的系统设计