一道算法题

来源:互联网 发布:csgo优化指令 编辑:程序博客网 时间:2024/05/16 11:41

今天碰到一个算法题,大意是如果N大于0就把N对2取余压栈,然后除2,循环往复直到N不再大于0然后全部弹栈,问N如果取50,结果是什么,这个算法的意义是什么。我把N=50这个条件带进去之后,也算出了正确的结果是110010,感觉是10进制转换成2进制啊,果然是。然后我就想,为什么不停地对2取余就能转换进制呢,在我差点就要去百度的时候我发现,11001其实代表着25,加个零变成110010,也就是10进制的50——这其实跟十进制是一样的,在5后面加个0就是50,50对10取余第一次得0,除10再取余得5,按先进后出原则写出来就是50。这东西确实蛮有意思的。
9.12

1 0