首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-04-13 
递归算法,这个为什么结果是:10100??#include stdio.hvoidbin(intx){if(x/2 0){bin(x/2)printf( OK\n

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

热点排行