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

PAT乙级(1022 D进制的A+B)C语言

文章目录

  • 1022 D进制的A+B
    • 输入格式
    • 输出格式
    • 输入样例
    • 输出样例
    • 代码示例

1022 D进制的A+B

在这里插入图片描述

输入格式

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

输出格式

输出 A+B 的 D 进制数。

输入样例

123 456 8

输出样例

1103

代码示例

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>

// 主函数,程序的入口点
int main() {
    // 定义三个整型变量 a、b 和 d
    // a 和 b 用于存储输入的两个十进制非负整数
    // d 用于存储目标进制
    int a, b, d;
    // 从标准输入读取三个整数,分别赋值给 a、b 和 d
    scanf("%d %d %d", &a, &b, &d);

    // 计算 a 和 b 的和,存储在变量 sum 中
    int sum = a + b;

    // 定义一个长度为 32 的整型数组 c
    // 该数组用于存储转换后的 D 进制数的每一位
    // 考虑到输入的数最大为 2^30 - 1,32 位足够存储转换后的结果
    int c[32];
    // 定义一个整型变量 index,用于记录数组 c 的当前索引位置,初始值为 0
    int index = 0;

    // 判断 sum 是否为 0
    if (sum == 0) {
        // 如果 sum 为 0,直接输出 0
        printf("0");
    } else {
        // 当 sum 大于 0 时,进行进制转换
        while (sum > 0) {
            // 将 sum 对 d 取模的结果存储到数组 c 中
            // 该结果是 D 进制数的当前最低位
            c[index++] = sum % d;
            // sum 除以 d 并取整,更新 sum 的值
            // 相当于去掉当前最低位,继续处理剩余的数
            sum /= d;
        }
    }

    // 逆序输出数组 c 中的元素
    // 因为在前面的进制转换过程中,最低位先存储在数组中,所以需要逆序输出
    for (int i = index - 1; i >= 0; i--) {
        // 输出数组 c 中第 i 个元素
        printf("%d", c[i]);
    }

    // 程序正常结束,返回 0
    return 0;
}

http://www.kler.cn/a/583876.html

相关文章:

  • ADC采样和存储数据之间的关系
  • 一键阐述“多线程、多进程、多任务”的场景需求
  • Deepseek Chatgpt Kimi 推荐的深度学习书单
  • OpenRewrite配方之import语句的顺序——org.openrewrite.java.OrderImports
  • Spring(一)
  • 工具(十二):Java导出MySQL数据库表结构信息到excel
  • 5G/6G通信技术
  • 便利店商品推荐数字大屏:基于python和streamlit
  • js下载blob二进制文件流 预览
  • 瑞芯微RK3588安卓使用fastboot分区烧录
  • 江科大51单片机笔记【12】AT24C02(I2C总线)
  • 浙江大学第四讲:DeepSeek模型优势:算力、成本角度解读(含PPT及直播回放)(文末附链接下载)
  • 前端面试:px 如何转为 rem
  • DrBioRight2.0:用于癌症蛋白组分析的生物学聊天机器人
  • 【Linux篇】进程状态(僵尸进程,孤儿进程),优先级与调度机制
  • 内检实验室lims系统在电子设备制造行业的应用
  • 中小型企业如何利用远程控制方案来降低40%运维成本的
  • 麒麟v10 ARM64架构系统升级mysql数据库从mysql-5.7.27到mysql-8.4.4图文教程
  • Django系列教程(7)——路由配置URLConf
  • 使用AI一步一步实现若依前端(12)