递归功能会反向打印
Does recursive function print in reverse?
#include <iostream>
using namespace std;
void convertToBinary(unsigned int n)
{
if (n>0)
{
convertToBinary(n / 2);
cout << n % 2;
}
}
int main(){
unsigned int n;
cin >> n;
convertToBinary(n);
}
这是一个函数递归,从十进制到二进制,例如,如果我给出此函数n等于 10
,则输出为 1010
,如何在最右边的数字呢?它将是0
,因为10%2 = 0
,然后打印0
,因此预期的输出将为101,因为有 0
。
递归调用使用的数据结构称为堆栈。它的工作原理是最终的。因此,直到您的基本条件(即满足(n > 0)
(时,convertToBinary
在打印n%2
本身之前重新呼叫。当无法满足基本条件时,convertToBinary
由于堆栈结构而开始反向打印二进制值。
相关文章:
- 打印功能无法正常工作 - 链表
- 阵列打印功能
- 为什么我的打印功能不起作用?链表
- 为什么我的打印功能之一删除节点
- 打印功能不会终止
- 如何正确格式化此打印功能
- 使用for_each从对象列表中调用打印功能
- 打印功能的地址..声明
- 作为参数传递的打印功能指针导致屏幕上打印"1"
- 无效打印功能错误
- 尽管具有打印功能,但我的矢量无法打印
- 我在双链表上的此打印功能时遇到问题
- 二进制树级别明智的打印功能不起作用
- 需要使班级(long_number)用构造函数和一个打印功能代表1到60的任何长度
- 我的链接列表打印功能进入无限循环
- 一个人可以使用clang ast使用名称打印功能指针的质量
- 如何实现打印功能
- 如何禁用打印功能
- 一个奇怪的打印功能错误
- 为什么我的打印功能为我的Postfix程序产生此错误