递归算法,这个为什么结果是: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
[解决办法]
这个是用递归求把一个十进制数转化二进制的数,用的是商作为下一次计算的被除数,作数为二进制数的一个位,用的是除基逆序取模法。