题目链接


题目大意:

将一个数字按照2的次幂拆分:

如:7,拆分成:2(2)+2+2(0) ;


解题思路:

1 明显是需要理解二进制的拆包思维:如何将一个数字拆分成若干个2的次幂,如果搞不懂,去研究一下背包里面的相关优化;

2 剩下就是一个递归的问题了;


上代码:

#include<bits/stdc++.h>int n;void dfs(int x)
{while(x>0)//对 x 进行二进制拆包 {int t=1,s=0;//t表示当前块的值,s表示当前是2的s次幂 while(x-t>=t){t*=2;s++;}if(s==1) printf("2");else if(s==0) printf("2(0)");else {printf("2("); dfs(s);printf(")");}if(x-t>0) printf("+");x-=t;}
}int main()
{scanf("%d",&n);dfs(n);return 0;
}

PS:最近在斯克二分的题目,这是luogu的分治模块里的题目,久违的秒切题,开心一下午~~~~~

luogu1010:幂次方相关推荐

  1. HashMap 的长度为什么是 2 的幂次方?

    HashMap 的长度为什么是 2 的幂次方? 为了能让HashMap存取高效,尽量减少碰撞,需要将散列表的数据分配均匀.使用HashMap查询或插入数据时,需要先对数组长度取模运算,index = ...

  2. 将整数拆分为2的幂次方

    任意一个正整数都可以用2的幂次方表示,例如:137=2^7+2^3+2^0,同时约定次方用括号来表示,即a^b=a(b).由此可知,137可表 示:2(7)+2(3)+2(0).进一步:7=2^2+2 ...

  3. 08、求x的y的幂次方的最后3位数——循环

    求x的y的幂次方的最后3位数 求x的y的幂次方的最后3位数 程序代码如下: /*2017年3月12日14:07:05功能:程序求x的y的幂次方的最后3位数*/#include"stdio.h ...

  4. 快速判断一个数是否是4的幂次方,若是,并判断出来是多少次方! .

    将4的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1(1在奇数位置),并且1后面跟了偶数个0: 因此问题可以转化为判断1后面是否跟了偶数个0就可以了. 4的整数次幂的二进制数都为 ...

  5. 【数据结构与算法】之判断一个整数是否是 4 的幂次方的高逼格算法

    一.题目要求 给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方. 示例一: 输入: 16输出: true 示例二: 输入: 5输出: false 进阶: 你能不使用循环 ...

  6. 8758:2的幂次方表示

    8758:2的幂次方表示 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 任何一个正整数都可以用2的幂次方表示.例如: 137=27+23+20 同时约定方次 ...

  7. Java递归例子——求x的y幂次方

    假设n的值大于0. 一:源程序: View Code package one; public class RecursionTest { /** * @param args */ public sta ...

  8. 2.2 基本算法之递归和自调用函数 8758 2的幂次方表示 python

    http://noi.openjudge.cn/ch0202/8758/ """ 2.2 基本算法之递归和自调用函数 8758 2的幂次方表示 python http:/ ...

  9. 快速判断一个数是否是2的幂次方

    public class Test {public static void main(String[] args) {int num = 10;if (0 == (num & (num - 1 ...

  10. 信息学奥赛一本通 1208:2的幂次方表示 | OpenJudge 2.2 8758:2的幂次方表示 | 洛谷 P1010 [NOIP1998 普及组] 幂次方

    [题目链接] ybt 1208:2的幂次方表示 OpenJudge 2.2 8758:2的幂次方表示 洛谷 P1010 [NOIP1998 普及组] 幂次方 [题目考点] 1. 递归 [解题思路] 递 ...

最新文章

  1. Boost源码剖析之:容器赋值-assign
  2. HD 1213 How Many Tables(裸 并查集)
  3. 挖洞经验 | 看我如何发现“小火车托马斯”智能玩具APP聊天应用漏洞
  4. python递归详解_Python理解递归的方法总结
  5. 极端情况下收缩 Go 进程的线程数
  6. APP视觉稿该怎么切图和标注
  7. 单调栈 leetcode整理(一)
  8. 聚类效果评价——Davies-Bouldin(DB指标)——内部评估标准(3)
  9. kali Linux下wifi密码安全测试(1)虚拟机下usb无线网卡的挂载 【转】
  10. java网络编程3 -- NIO一些简单说明
  11. 深度学习2.0-39.RNN训练难题-梯度弥散与梯度爆炸
  12. 图像增强--视网膜皮层Retinex算法(二)
  13. java初级求职简历,初级Java软件工程师求职简历范文
  14. Android实现思维导图功能,Android打造思维导图
  15. DSP CCS12.00 芯片:TMS320F28335 结课设计 数字电压表 TFTLCD 模块 + ADC 模块
  16. 【最新】滤器完整性检测各国规定
  17. Abp Vnext修改密码强度
  18. 解决字符串存在\u6d4b\u8bd5\u5206\u7c7等中文汉字(乱码)(unicode码)
  19. 推荐系统经典论文文献及业界应用
  20. 【调剂】重庆理工大学2022年硕士研究生招生调剂公告

热门文章

  1. 30个T的硬盘都不够装,你想要的资源都在这里
  2. java 椭圆拟合,OpenCV画轮廓的外界圆矩形椭圆等
  3. 【Linux】U盘制作安装系统启动盘
  4. RGB颜色值与十六进制颜色码转换(在线)
  5. ES6中Generator函数
  6. Oracle Linux 7.5 安装 Oracle 18C 单实例
  7. Intellij IDEA)- git - 创建项目
  8. 抖音短视频KOL推广真的有效果吗?
  9. Python爬虫实战:爬取全站小说排行榜
  10. 系统学习Python——进度条模块tqdm