gpt4 book ai didi

c++ - 递归函数是否反向打印?

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:06:05 27 4
gpt4 key购买 nike

#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,为什么 1 在最右边的数字?它将是 0,因为 10 % 2 = 0,然后打印 0 ,因此预期输出将是 101,因为有一个 >0

最佳答案

递归调用使用的数据结构称为stack .它的工作原理是后进先出。因此,直到您的基本条件即 (n > 0) 得到满足,convertToBinary 才会在打印 n%2 本身之前重新调用。当基本条件不满足时,convertToBinary 由于堆栈结构而开始反向打印二进制值。

关于c++ - 递归函数是否反向打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50083724/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com