题解 1626: 蓝桥杯算法训练VIP-幂方分解

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

筛选

蓝桥杯算法训练VIP-幂方分解 (C++代码)

解题思路:主要在于递归分治函数运用位运算查找当前需要进行分解数的1的最高位,然后先打印一个2,再对得到的幂进行判断,是1直接不用处理,是2或0就按代码中进行打印.不是0,1,2就对幂进行递归分解.最后判断剩余的减去2^i的数是否还需要进行分解,

蓝桥杯算法训练VIP-幂方分解

不断的将n拆分成更小的数,前后做法一致,只是规模变小,容易联想到递归```cpp#include#includeusingnamespacestd;intFindBinaryTop(intn){//返回二进制表示中最高位1的位置inti;for(i=31;i>=0;i--){//二进制向右循环移动i位

幂方分解 递归 理清思路,注意细节

题目不难,**关键要理清思路!!!知道递归前和递归结束后要干什么**还是那句话**不要妄图理解递归,试着去感受它**```cpp#include#includeusingnamespacestd;intn;voiddfs(intn){if(n==0)return;elseif(n==1){cout

蓝桥杯算法训练VIP-幂方分解-题解(C++代码)

个人觉得,这道题易错的地方在于各种符号()+的添加,我弄了半天才搞好第一步,找出式子中的各个数0,1,2这里分解数字的要求就是将其转化为二进制,取数位为1的位数如3的二进制是00000011则3=2^1+2^0,可以写一个函数,利用位运算简洁快速的找到,