竞赛
考级
刚学完递归,来这里运用一下: 题眼:想必大家都知道除2取余,逆序排列。的规则吧,我们正好可以用递归解决. 递归思路: 接下来,照着递归思路,编出递归函数,参考代码: 好啦,编出主程序: 加个定义: 放好头文件及基本语句: 拼在一起: 最后,点个赞吧!
简单题
我把main函数里的代码放到answer里了,不放也行。
采用递归,dfs(x)dfs(x)dfs(x) 的里输出 xxx 转化成的二进制数的最后一位,由于是要先输出最高位则应当先递归在进行输出,递归终止条件是 x=0x=0x=0。
这道题主要还是搞清楚怎么用递归写出二进制,搞懂超简单! 核心思路:不断用十进制数除以 2,记录每次相除得到的余数,直到商为 0 为止,然后把得到的余数按照逆序的顺序排列起来,就得到了对应的二进制数。 参考代码: 点个赞吧!
孩子们,这是函数部分,运用的是短除法,这里就不多做解释了(是个人都知道)。 主函数部分就是输入n的值,再调用函数就可以了。 最后教你们个小技巧: 相信有很多人看见后都很诧异“这段代码是什么意思呢?” 其实就是将“ll”定义为“long long”这样就可以不用写这么多啦! 当然你也可以将“str”定义为“srting”。 对你有帮助就给我点个关注吧!
这个递归简单,一遍过。
解题思路 首先我们需要了解十进制是如何转成二进制的: 就拿题目给的6为例 第1次,6 / 2 = 3,6 % 2 == 0^ 第2次,3 / 2 = 1,3 % 2 == 1 | 第3次,1 / 2 = 1,1 % 2 == 1 | 就像箭头所示,最后的余数逆反取余 所以十进制的6转换后就是110 代码
提交答案之后,这里将显示提交结果~