题解 2227: 蓝桥杯算法训练-2的次幂表示

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

python-2的次幂表示

解题思路:本题采用了一楼c++大佬的思路,在此基础上稍微进行了一下优化,然后解读一下自己的理解吧。算法的思路核心是对n的二进制数的每一位进行是否为1的判断,然后进行处理。算法上并没有直接对n的二进制数的每一位进行是否为1的判断,而是采用s=n-2^i的结果进行判断。

蓝桥杯算法训练-2的次幂表示

```cpp#include#includeusingnamespacestd;intFindBinaryTop(intn){//返回二进制表示中最高位1的位置inti;for(i=31;i>=0;i--){//二进制向右循环移动i位,与1做与运算if((n>>i)&1)break;}returni;

满分 使用一个index指向二进制中的最后一个1的位置

解题思路:注意事项:注意二进制有可能超过8位,而且少于8位时,可能会抹掉多余的零,为了统一后面,为不满8位的补了零,还有一个比较小的问题(可能我没有脑子记成二进制从后往前读,傻了傻了)用一个递归算法思路很简单参考代码:defbinfun(n):m=format(n,

2的次幂表示

摘要:解题思路:注意事项:参考代码:#define  _CRT_SECURE_NO_WARNINGS #include<stdio.h> void fun(int n)//n相当于幂次 { if ……

蓝桥杯算法训练-2的次幂表示

摘要:解题思路:计算2次幂数组, 递归二次幂表示形式。注意事项:特判n小于等于2时的输出形式参考代码:#include<iostream> #include<string> using namespac……

2的次幂表示,C语言

摘要:解题思路:注意事项:参考代码:#include<stdio.h>#include<string.h>#include<math.h>#include<stdlib.h>#include<stdbool……