时间限制: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 ****************************************************************/
时间: 2024-10-27 03:44:12