首页 > 代码库 > 九度OJ 1095 2的幂次方
九度OJ 1095 2的幂次方
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:772
解决:525
- 题目描述:
Every positive number can be presented by the exponential form.For example, 137 = 2^7 + 2^3 + 2^0。
Let‘s present a^b by the form a(b).Then 137 is presented by 2(7)+2(3)+2(0). Since 7 = 2^2 + 2 + 2^0 and 3 = 2 + 2^0 , 137 is finally presented by 2(2(2)+2 +2(0))+2(2+2(0))+2(0).
Given a positive number n,your task is to present n with the exponential form which only contains the digits 0 and 2.
- 输入:
For each case, the input file contains a positive integer n (n<=20000).
- 输出:
For each case, you should output the exponential form of n an a single line.Note that,there should not be any additional white spaces in the line.
- 样例输入:
1315
- 样例输出:
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
#include<stdio.h> #include<math.h> void solve(int n) { int cnt=0; while(pow(2,cnt)<=n) cnt++; cnt--; if(cnt==0) printf("2(0)"); else if(cnt==1) printf("2"); else { printf("2("); solve(cnt); printf(")"); } int num_r=n-pow(2,cnt); if(num_r) { printf("+"); solve(num_r); } } int main() { int n; while(~scanf("%d",&n)) { solve(n); printf("\n"); } return 0; } /************************************************************** Problem: 1095 User: kirchhoff Language: C Result: Accepted Time:0 ms Memory:1004 kb ****************************************************************/
九度OJ 1095 2的幂次方
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。