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

2025-03-09 学习记录--C/C++-PTA 习题10-7 十进制转换二进制

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻

一、题目描述 ⭐️

在这里插入图片描述

裁判测试程序样例:

#include <stdio.h>

void dectobin( int n );

int main()
{
    int n;
    
    scanf("%d", &n);
    dectobin(n);
    
    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例

10

输出样例

1010

二、解题思路 ⭐️

解题思路

三、代码(C语言)⭐️

方法一、非递归实现 🍭

void dectobin(int n) {
    if (n == 0) {          // 如果输入的整数 n 为 0
        printf("0");       // 直接输出 "0",因为 0 的二进制表示就是 0
        return;            // 结束函数
    }

    int numArr[255];       // 定义一个数组 numArr,用于存储二进制数的每一位(最大支持 255 位)
    int cnt = 0;           // 定义一个计数器 cnt,用于记录二进制数的位数

    while (n != 0) {       // 当 n 不为 0 时,循环计算二进制位
        numArr[cnt] = n % 2; // 将 n 对 2 取余的结果(0 或 1)存入数组 numArr
        cnt++;              // 计数器 cnt 加 1,表示二进制位数增加
        n /= 2;             // 将 n 除以 2,继续计算下一位
    }

    for (int i = cnt - 1; i >= 0; i--) { // 从最高位到最低位遍历数组 numArr
        printf("%d", numArr[i]);         // 输出当前位的值(0 或 1)
    }
}

方法二、递归实现 🍭

void dectobin(int n) {
    if (n > 1) {
        dectobin(n / 2); // 递归调用,处理高位数
    }
    printf("%d", n % 2); // 输出当前位
}

在这里插入图片描述

在这里插入图片描述

相关文章:

  • Spring Boot启动流程及源码实现深度解析
  • 2025 年 2 月公链行业研报:回调中的挑战与创新
  • 什么时候需要做性能测试?
  • Nature综述 | 饮食与肠道微生物群之间的相互作用:对健康和疾病的影响
  • 考研408
  • OSPF:虚链路
  • 分布式锁—5.Redisson的读写锁一
  • SpringBoot 配置视图控制器
  • 网络的正则拓扑与自然生长
  • Java爬虫获取淘宝商品详情数据的完整指南
  • 基于SpringBoot的餐厅点餐管理系统设计与实现(源码+SQL脚本+LW+部署讲解等)
  • C++:入门详解(关于C与C++基本差别)
  • Lua怎么学?Lua编程实战:从基础语法到高级特性
  • mysql,docker一键创建以及链接报错:Public Key Retrieval is not allowed
  • 2025-03-09 学习记录--C/C++-PTA 练习11-4 字符定位(最后一次找到的字符)
  • 前端 | CORS 跨域问题解决
  • Linux上位机开发实战(开篇)
  • 认识vue2脚手架
  • LangChain4j开发RAG入门示例
  • Unity Dots从入门到精通之 Prefab引用 转 实体引用
  • 匈牙利史专家阚思静逝世,享年87岁
  • 习近平结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典回到北京
  • 综艺还有怎样的新可能?挖掘小众文化领域
  • 龙湖集团:今年前4个月销售220.8亿元,4月新增两块土地储备
  • 体坛联播|郑钦文收获红土赛季首胜,国际乒联公布财报
  • 2025中国南昌国际龙舟赛5月23日启幕,是历年来南昌举办的最高规格龙舟赛事