0


2的幂次方(冬季每日一题 10)

每个正数都可以用指数形式表示。

例如,

    137
   
   
    =
   
   
    
     2
    
    
     7
    
   
   
    +
   
   
    
     2
    
    
     3
    
   
   
    +
   
   
    
     2
    
    
     0
    
   
  
  
   137=2^7+2^3+2^0
  
 
137=27+23+20。

让我们用

    a
   
   
    (
   
   
    b
   
   
    )
   
  
  
   a(b)
  
 
a(b) 来表示 

 
  
   
    
     a
    
    
     b
    
   
  
  
   a^b
  
 
ab。

那么

    137
   
  
  
   137
  
 
137 可以表示为 

 
  
   
    2
   
   
    (
   
   
    7
   
   
    )
   
   
    +
   
   
    2
   
   
    (
   
   
    3
   
   
    )
   
   
    +
   
   
    2
   
   
    (
   
   
    0
   
   
    )
   
  
  
   2(7)+2(3)+2(0)
  
 
2(7)+2(3)+2(0)。

因为

    7
   
   
    =
   
   
    
     2
    
    
     2
    
   
   
    +
   
   
    2
   
   
    +
   
   
    
     2
    
    
     0
    
   
  
  
   7=2^2+2+2^0
  
 
7=22+2+20,

 
  
   
    3
   
   
    =
   
   
    2
   
   
    +
   
   
    
     2
    
    
     0
    
   
  
  
   3=2+2^0
  
 
3=2+20,所以 

 
  
   
    137
   
  
  
   137
  
 
137 最终可以表示为 

 
  
   
    2
   
   
    (
   
   
    2
   
   
    (
   
   
    2
   
   
    )
   
   
    +
   
   
    2
   
   
    +
   
   
    2
   
   
    (
   
   
    0
   
   
    )
   
   
    )
   
   
    +
   
   
    2
   
   
    (
   
   
    2
   
   
    +
   
   
    2
   
   
    (
   
   
    0
   
   
    )
   
   
    )
   
   
    +
   
   
    2
   
   
    (
   
   
    0
   
   
    )
   
  
  
   2(2(2)+2+2(0))+2(2+2(0))+2(0)
  
 
2(2(2)+2+2(0))+2(2+2(0))+2(0)。

给定一个正数

    n
   
  
  
   n
  
 
n,请你将 

 
  
   
    n
   
  
  
   n
  
 
n 表示为只包含 

 
  
   
    0
   
  
  
   0
  
 
0 和 

 
  
   
    2
   
  
  
   2
  
 
2 的指数形式。

输入格式
输入包含多组数据。

每组数据占一行,一个正数

    n
   
  
  
   n
  
 
n。

输出格式
每组数据输出一行,一个指数形式表示。

数据范围

    1
   
   
    ≤
   
   
    n
   
   
    ≤
   
   
    20000
   
   
    ,
   
  
  
   1≤n≤20000,
  
 
1≤n≤20000,

每个输入最多包含

    100
   
  
  
   100
  
 
100 组数据。

输入样例:

1315

输出样例:

2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)

#include<iostream>usingnamespace std;voiddfs(int n){bool flag =true;for(int i =14; i >=0; i--){if(n >> i &1){if(flag) flag =false;else cout <<'+';
            
            cout <<2;if(i !=1) cout <<'(';if(i >=3)dfs(i);else{if(i !=1) cout << i;}if(i !=1) cout <<')';}}}intmain(){int n;while(cin >> n)dfs(n),puts("");return0;}
标签: 递归

本文转载自: https://blog.csdn.net/qq_46456049/article/details/127896965
版权归原作者 sweetheart7-7 所有, 如有侵权,请联系我们删除。

“2的幂次方(冬季每日一题 10)”的评论:

还没有评论