递归实现十进制向二进制的转化

#include<iostream>
using namespace std;
void toBinary(unsigned long n)
{
    int i;
    i = n % 2;
    if(n >= 2)
        toBinary(n/2);
    putchar(i==0?'0':'1');
    return;
}

int main()
{
    toBinary(9);
}

有人可能会纳闷,数字是不是倒序输出了?因为第一个i其实是最后一位数,但是在if判断之后程序使用putchar输出了i。
但实际上并不是这样的,if结构使函数进入了递归中,导致最先输出执行putchar语句的反而是递归最深层,也就是二进制第一位!!!

递归实现十进制向二进制的转化递归实现十进制向二进制的转化 戎码关山 发布了259 篇原创文章 · 获赞 38 · 访问量 3万+ 私信 关注
上一篇:用getchar()从键盘上输入一个字符,用putchar()打印出来!


下一篇:CF1295A Display The Number