读书人

递归算法,这个为什么结果是:10100?解决

发布时间: 2012-04-13 13:50:24 作者: rapoo

递归算法,这个为什么结果是:10100??
#include <stdio.h>
void bin(int x)
{
if(x/2> 0)


{bin(x/2);
printf( "OK\n ");}

printf( "%d ",x%2);
}

void main()
{
bin(20);
printf( "\n ");
}

为什么结果是:10100??

[解决办法]
bin(20)-----> bin(10)-------> bin(5)-----> bin(2)---------> bin(1)
0 <-------------0 <----------- 1 <------------ 0 <--------------1
[解决办法]
这个是用递归求把一个十进制数转化二进制的数,用的是商作为下一次计算的被除数,作数为二进制数的一个位,用的是除基逆序取模法。

读书人网 >C语言

热点推荐