洛谷题解 P1010 【幂次方】
分析
看各位大佬都用二进制等高端算法,蒟蒻都不会啊!QAQ只好用了最朴素的递归与模拟。
这里要理清这两点:
- 在分解一个数时,不能出现重复的,因为$2^x+2^x=2^{x+1}$。
- 分解出来的幂的指数要尽可能的大。
然后,程序的具体思路是:
- 先找一个尽可能大的幂。
- 特判,将指数为0和1的单独挑出来输出。
- 递归指数。
- 减去已经找到的幂次方数,返回第一步。
这样说可能有点迷,上代码更简单!
核心代码
1 | void dfs(int k)//传入一个数 |
洛谷题解 P1010 【幂次方】
You need to set
install_url
to use ShareThis. Please set it in _config.yml
.