题目

1208:2的幂次方表示

时间限制: 1000 ms 内存限制: 65536 KB
【题目描述】
任何一个正整数都可以用2的幂次方表示。例如:

137=27+23+20

同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为:

2(7)+2(3)+2(0)

进一步:7=22+2+20(21用2表示)

3=2+20

所以最后137可表示为:

2(2(2)+2+2(0))+2(2+2(0))+2(0)

又如:

1315=210+28+25+2+1

所以1315最后可表示为:

2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

【输入】
一个正整数n(n≤20000)。

【输出】
一行,符合约定的n的0,2表示(在表示中不能有空格)。

【输入样例】
137
【输出样例】
2(2(2)+2+2(0))+2(2+2(0))+2(0)


题目分析:题目要求在最后的结果只有0和2这两个数字,其它数字一律用2的n次方表示,这里面的n也需要进行以上处理,所以可以考虑用递归算法。


C++代码

#include<iostream>
using namespace std;
string f(unsigned int n)
{if(n==0)return "0";unsigned int i,t;for(i=0,t=1;t<=n;i++)//把n分成2的i次方+jt*=2;i--; t/=2;string result;if(i==1)//2的1次方直接返回2result="2";else{result="2(";result+=f(i);//递归求i的表示方法result+=")";   }if(n-t)//还有剩余的数,即j>0{result+="+";result+=f(n-t);//递归求j的表示方法}return result;
}
int main()
{unsigned int n;cin>>n;cout<<f(n);return 0;
}

运行结果



1208:2的幂次方表示相关推荐

  1. 题解1208 2的幂次方表示

    [题目描述] 任何一个正整数都可以用2的幂次方表示.例如: 137=27+23+20137=27+23+20 同时约定方次用括号来表示,即ab可表示为a(b).由此可知,137可表示为: 2(7)+2 ...

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

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

  3. 信息学奥赛一本通(1208:2的幂次方表示)

    1208:2的幂次方表示 时间限制: 1000 ms         内存限制: 65536 KB 提交数: 5891     通过数: 4389 [题目描述] 任何一个正整数都可以用2的幂次方表示. ...

  4. 信息奥赛一本通1208:2的幂次方表示

    1208:2的幂次方表示 [题目描述] 任何一个正整数都可以用2的幂次方表示.例如: 137=27+23+20 同时约定方次用括号来表示,即ab可表示为a(b).由此可知,137可表示为: 2(7)+ ...

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

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

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

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

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

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

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

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

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

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

最新文章

  1. mysql 和 sqlite 区别 及 SQLite Expert Professional sqliteManager 区别
  2. tf.placeholder类似函数中的形参
  3. Nginx FastCGI的运行原理
  4. SAP ABAP实用技巧介绍系列之 XSLT copy和copy-of
  5. “21天好习惯”第一期-17
  6. 【JOURNAL】Salles de SV Toulouse
  7. 面试题--------10、索引是什么,有什么作用和优缺点
  8. MySQL DBA教程:Mysql性能优化之缓存参数优化
  9. 中国程序员不得不使用的php框架,堪称不得已?
  10. linux uuid挂载磁盘_Linux磁盘设备磁盘设备的UUID标识代码(sda,sdb,sdc…)变化的解决办法...
  11. 数据挖掘导论 第五章 重点习题解答
  12. 微软输入法怎么最小化到托盘_Windows下的五笔输入法哪个最好用?我来推荐几款...
  13. 华为数通笔记-VRF
  14. Windows Mobile 触摸屏(Touch Panel)截获
  15. leetcode-1260:二维网格迁移
  16. 许竹青、骆艾荣:数字城市的理念演化、主要类别及未来趋势研究
  17. 十个免费的Web负载/压力测试工具
  18. 《UniDAC 基础》 【菜头】 翻译 (之一)
  19. oracle 查询两张表合并,oracle的多表合并查询-工作心得
  20. matlab GUI读取图像文件

热门文章

  1. ALLEGRO 中导入PADS的asc文件时显示pads_in.log does not exit
  2. MatlabSimulink中找不到Carsim_s_function的解决办法
  3. 【计算机网络实验】停止等待ARQ算法模拟(Python实现)
  4. H5游戏视力测试-玩到第八关都是大神
  5. 云通讯这局棋,声网、容联云怎么破?
  6. 新百家姓出来了,看你排第几位?
  7. CocosCreator之KUOKUO趣味文章:小怪要绕墙 3
  8. STM32学习笔记1:STM32ZET6配置蓝牙模块
  9. maya建模与骨骼动画快速实现人工鱼
  10. zlib 1.2.9 not found