编写十进制转二进制的递归算法并进行验证

时间: 2023-04-29 22:02:17 浏览: 72
十进制转二进制的递归算法: 1. 将十进制数除以2,得到商和余数。 2. 将余数存储到一个数组中。 3. 如果商为,则递归结束。 4. 否则,将商作为新的十进制数,重复步骤1。 验证: 以十进制数13为例,转换成二进制应该是1101。 1. 13 / 2 = 6 ... 1 2. 余数1存储到数组中,得到[1]。 3. 6 / 2 = 3 ... 4. 余数存储到数组中,得到[, 1]。 5. 3 / 2 = 1 ... 1 6. 余数1存储到数组中,得到[1, , 1]。 7. 1 / 2 = ... 1 8. 余数1存储到数组中,得到[1, , 1, 1]。 9. 商为,递归结束。 10. 将数组倒序输出,得到1101,与预期结果相符。 因此,该递归算法是正确的。
相关问题

c语言十进制转二进制递归算法

C语言实现十进制转二进制的递归算法如下: ```c #include <stdio.h> void decimalToBinary(int decimal) { if (decimal == 0) { return; } decimalToBinary(decimal / 2); printf("%d", decimal % 2); } int main() { int decimal; printf("请输入一个十进制数:"); scanf("%d", &decimal); printf("%d的二进制表示为:", decimal); decimalToBinary(decimal); printf("\n"); return 0; } ``` 此递归算法的思路是不断地将十进制数除以2,直到商为0停止递归。在每一次递归中,先递归调用除以2的商,然后输出余数。递归终止条件是当十进制数等于0时,即所有位数都被转化为二进制。 首先,在`main`函数中,通过`scanf`函数获取用户输入的十进制数,保存在`decimal`变量中。 然后,调用`decimalToBinary`函数,将`decimal`作为参数传递进去。 在`decimalToBinary`函数中,首先判断`decimal`是否为0,如果是,则直接返回。否则,继续递归调用`decimalToBinary`函数,参数为`decimal`除以2的商。然后,输出`decimal`对2取余的结果,即该位的二进制数值。 最后,在`main`函数中,输出转化完成的二进制数。 例如,输入十进制数10,经过递归转换后输出的二进制数为1010。

c++递归算法进制转换

递归算法是一种通过函数自身调用来解决问题的方法。在C语言中,可以使用递归算法来进行进制转换。 下面是一个将十进制数转换为二进制数的递归算法示例: ```c void change(int num) { if(num > 0) { change(num/2); cout << num%2; } } ``` 这个递归算法会将给定的十进制数num逐步除以2,直到num变为0为止。每次除法的余数就是对应的二进制位。最后,按照递归的顺序,输出二进制位,即可得到转换后的二进制数。

相关推荐

最新推荐

recommend-type

算法实验报告 大整数乘法

设计十进制的大整数乘法,必须利用分治的思想编写算法,利用c语言(c++语言... 设计二进制的大整数乘法,要求利用分治的思想编写递归算法,并可以实现多位数的乘法(利用数组实现),给出程序的正确运行结果。(任选)
recommend-type

计算机软件水平考试软件设计师考试大纲与培训指南(2009版)

通过本考试的合格人员能根据软件开发项目管理和软件工程的要求,按照系统总体设计规格说明书进行软件设计,编写程序设计规格说明书等相应的文档,组织和指导程序员编写、调试程序,并对软件进行优化和集成测试,开发...
recommend-type

net学习笔记及其他代码应用

而Remoting可以利用TCP/IP,二进制传送提高效率。 31.公司要求开发一个继承System.Windows.Forms.ListView类的组件,要求达到以下的特殊功能:点击ListView各列列头时,能按照点击列的每行值进行重排视图中的所有行...
recommend-type

Scrapy-1.8.2.tar.gz

文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。
recommend-type

search-log.zip

搜索记录,包括时间、搜索关键词等,用于PySpark案例练习
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。