1208:2的幂次方表示
题目
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的幂次方表示相关推荐
- 题解1208 2的幂次方表示
[题目描述] 任何一个正整数都可以用2的幂次方表示.例如: 137=27+23+20137=27+23+20 同时约定方次用括号来表示,即ab可表示为a(b).由此可知,137可表示为: 2(7)+2 ...
- 信息学奥赛一本通 1208:2的幂次方表示 | OpenJudge 2.2 8758:2的幂次方表示 | 洛谷 P1010 [NOIP1998 普及组] 幂次方
[题目链接] ybt 1208:2的幂次方表示 OpenJudge 2.2 8758:2的幂次方表示 洛谷 P1010 [NOIP1998 普及组] 幂次方 [题目考点] 1. 递归 [解题思路] 递 ...
- 信息学奥赛一本通(1208:2的幂次方表示)
1208:2的幂次方表示 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 5891 通过数: 4389 [题目描述] 任何一个正整数都可以用2的幂次方表示. ...
- 信息奥赛一本通1208:2的幂次方表示
1208:2的幂次方表示 [题目描述] 任何一个正整数都可以用2的幂次方表示.例如: 137=27+23+20 同时约定方次用括号来表示,即ab可表示为a(b).由此可知,137可表示为: 2(7)+ ...
- HashMap 的长度为什么是 2 的幂次方?
HashMap 的长度为什么是 2 的幂次方? 为了能让HashMap存取高效,尽量减少碰撞,需要将散列表的数据分配均匀.使用HashMap查询或插入数据时,需要先对数组长度取模运算,index = ...
- 将整数拆分为2的幂次方
任意一个正整数都可以用2的幂次方表示,例如:137=2^7+2^3+2^0,同时约定次方用括号来表示,即a^b=a(b).由此可知,137可表 示:2(7)+2(3)+2(0).进一步:7=2^2+2 ...
- 08、求x的y的幂次方的最后3位数——循环
求x的y的幂次方的最后3位数 求x的y的幂次方的最后3位数 程序代码如下: /*2017年3月12日14:07:05功能:程序求x的y的幂次方的最后3位数*/#include"stdio.h ...
- 快速判断一个数是否是4的幂次方,若是,并判断出来是多少次方! .
将4的幂次方写成二进制形式后,很容易就会发现有一个特点:二进制中只有一个1(1在奇数位置),并且1后面跟了偶数个0: 因此问题可以转化为判断1后面是否跟了偶数个0就可以了. 4的整数次幂的二进制数都为 ...
- 【数据结构与算法】之判断一个整数是否是 4 的幂次方的高逼格算法
一.题目要求 给定一个整数 (32 位有符号整数),请编写一个函数来判断它是否是 4 的幂次方. 示例一: 输入: 16输出: true 示例二: 输入: 5输出: false 进阶: 你能不使用循环 ...
最新文章
- mysql 和 sqlite 区别 及 SQLite Expert Professional sqliteManager 区别
- tf.placeholder类似函数中的形参
- Nginx FastCGI的运行原理
- SAP ABAP实用技巧介绍系列之 XSLT copy和copy-of
- “21天好习惯”第一期-17
- 【JOURNAL】Salles de SV Toulouse
- 面试题--------10、索引是什么,有什么作用和优缺点
- MySQL DBA教程:Mysql性能优化之缓存参数优化
- 中国程序员不得不使用的php框架,堪称不得已?
- linux uuid挂载磁盘_Linux磁盘设备磁盘设备的UUID标识代码(sda,sdb,sdc…)变化的解决办法...
- 数据挖掘导论 第五章 重点习题解答
- 微软输入法怎么最小化到托盘_Windows下的五笔输入法哪个最好用?我来推荐几款...
- 华为数通笔记-VRF
- Windows Mobile 触摸屏(Touch Panel)截获
- leetcode-1260:二维网格迁移
- 许竹青、骆艾荣:数字城市的理念演化、主要类别及未来趋势研究
- 十个免费的Web负载/压力测试工具
- 《UniDAC 基础》 【菜头】 翻译 (之一)
- oracle 查询两张表合并,oracle的多表合并查询-工作心得
- matlab GUI读取图像文件
热门文章
- ALLEGRO 中导入PADS的asc文件时显示pads_in.log does not exit
- MatlabSimulink中找不到Carsim_s_function的解决办法
- 【计算机网络实验】停止等待ARQ算法模拟(Python实现)
- H5游戏视力测试-玩到第八关都是大神
- 云通讯这局棋,声网、容联云怎么破?
- 新百家姓出来了,看你排第几位?
- CocosCreator之KUOKUO趣味文章:小怪要绕墙 3
- STM32学习笔记1:STM32ZET6配置蓝牙模块
- maya建模与骨骼动画快速实现人工鱼
- zlib 1.2.9 not found