2的幂次方表示()
来源:互联网 发布:apache spark源码剖析 编辑:程序博客网 时间:2024/06/03 11:11
b:2的幂次方表示()
- 查看
- 提交
- 统计
- 提问
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
任何一个正整数都可以用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)
- 来源
- NOIP1998复赛 普及组 第一题
#include <algorithm>#include <iostream>#include <cstring>#include <string>#include <vector>#include <cstdio>#include <queue>#include <cmath>#include <map>using namespace std;#define N 5010#define INF 0x3f3f3f3f#define mod 100003#define EPS 1e-12char s[10];void solution(int n){ if(n==1) { printf("2(0)"); return ; } else if(n==2) { printf("2"); return ; } else { int m=1,e=0;//m^e while(m<=n){ m*=2; e++; } m/=2; e--;//回退 if(e==1) { printf("2"); } else { printf("2("); solution(e); printf(")"); } if(m!=n) {//如果还有剩余继续 printf("+"); solution(n-m); } } return ;}int main(){ int n; scanf("%d",&n); solution(n); return 0;}
阅读全文
0 0
- 2的幂次方表示()
- 2的幂次方表示
- 2的幂次方表示
- 2的幂次方表示
- 2的幂次方表示
- 2的幂次方表示
- 2的幂次方表示
- 2的幂次方表示答案及注释(NOIP)
- 2的幂次方表示题解
- 2的幂次方表示题解
- 2的幂次方表示题解
- 递归之 2的幂次方表示
- openJudge 2的幂次方表示
- 百练:2的幂次方表示
- openjudge :2的幂次方表示
- CCF NOI1074 2的幂次方表示
- NOIP1998复赛:2的幂次方表示
- 递归-2的幂次方表示
- std::priority_queue 优先队列
- Android高级控件之ListView的优化以及下拉刷新页面
- 组合查询和存储过程
- 从对象和函数(或称构造函数)两个维度理解js中的函数
- 单例模式
- 2的幂次方表示()
- WebView和JS交互
- 游戏开发中的人工智能(九):有限状态机
- 理解TCP/IP,SOCKET,HTTP,FTP,RMI,RPC,webservice等的含义和关系
- Java实现Base64加密
- Java实现SOAP协议
- CentOS7 ipconfig命令不可用~
- 应聘时最漂亮的回答
- 使用CSDN-markdown编辑器