[LUOGU1010]幂次方
来源:互联网 发布:linux connect 编辑:程序博客网 时间:2024/05/22 13:34
题目描述
任何一个正整数都可以用2的幂次方表示。例如
137=2^7+2^3+2^0
同时约定方次用括号来表示,即a^b 可表示为a(b)。
由此可知,137可表示为:
2(7)+2(3)+2(0)
进一步:7= 2^2+2+2^0 (2^1用2表示)
3=2+2^0
所以最后137可表示为:
2(2(2)+2+2(0))+2(2+2(0))+2(0)
又如:
1315=2^10 +2^8 +2^5 +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表示(在表示中不能有空格)
输入输出样例
输入样例#1:
1315
输出样例#1
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
挺水的,用快速幂转换一下加几个特判就行啦
#include<bits/stdc++.h>using namespace std;int n; int solve(int x){ int a[20]={0},mx=0; while(x) { if(x&1) a[mx]=1; mx++; x>>=1; } mx--; for(int i=mx;i>=0;i--) { if(a[i]) { if(i!=mx) printf("+"); printf("2"); if(i!=1) { printf("("); if(i==0) printf("0"); else if(i==2) printf("2"); else solve(i); printf(")"); } } }}int main(){ scanf("%d",&n); solve(n); return 0;}
阅读全文
0 0
- [LUOGU1010]幂次方
- 幂次方
- 幂次方
- 幂次方
- 形式化函数(幂次方)
- 形式语义幂次方
- 幂次方算法
- 2的幂次方
- c++求幂次方
- 递归实现幂次方
- 2的幂次方
- [二分]幂次方
- 洛谷 P1010 幂次方
- python **幂次方
- P1010 幂次方
- P1010 幂次方
- P1010 幂次方 luogu
- 洛谷 P1010 幂次方
- 高效的二维卷积实现
- ubuntu1604 sourcelist 解决openGL无法安转问题
- lintcode&九章算术——Lintcode No.80 中位数 ? 待解决
- C++ 存储类
- #include "stdafx.h’’程序开头就有这个,但是这个会出错
- [LUOGU1010]幂次方
- ArrayList记录
- android 源码查看与分析
- jQuery插件Validation表单验证
- 漫谈专有云集成与发布机制
- Lambda表达式过滤长度低于1分钟的歌曲
- Python 深入浅出
- lintcode&九章算法——lintcode NO.5 第k大元素 ? 带解决
- [LeetCode] Convert Sorted Array to Binary Search Tree