P1010 冪次方(遞迴)
題目描述
任何一個正整數都可以用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 a[20]={1}; int n;
void dfs(int x)
{
int t;
for(int i=0;i<=15;i++)
{
if(a[i]>x)
{
t=i-1;
break;
}
}
if(t>=2)
{
printf("2(");
dfs(t); printf(")");
}
else
{
if(t==0)
printf("2(0)");
if(t==1)
printf("2");
}
if(x-a[t]>0)
{
printf("+");
dfs(x-a[t]);
}
}
int main()
{
for(int i=1;i<=15;i++)
a[i]=a[i-1]*2;
scanf("%d",&n);
dfs(n);
return 0;
}
相關文章
- P1010 [NOIP1998 普及組] 冪次方
- 力扣之 4 的冪 & 3 的冪 & 2 的冪(遞迴思想)力扣遞迴
- 遞迴和尾遞迴遞迴
- 快速排序【遞迴】【非遞迴】排序遞迴
- 【矩陣乘法】【快速冪】遞推矩陣
- 遞迴遞迴
- 什麼是遞迴?遞迴和迴圈的異同遞迴
- go 遞迴Go遞迴
- JavaScript遞迴JavaScript遞迴
- 理解遞迴遞迴
- 分而治之-遞迴遞迴
- 遍歷二叉樹-------遞迴&非遞迴二叉樹遞迴
- 遞迴和遞推總結遞迴
- 迭代與遞迴--你被遞迴搞暈過嗎?遞迴
- 演算法小專欄:遞迴與尾遞迴演算法遞迴
- 遞迴呼叫 VS 迴圈呼叫遞迴
- 遞迴總結遞迴
- SQL 遞迴思想SQL遞迴
- 遞迴函式遞迴函式
- 談談遞迴遞迴
- 遞迴問題遞迴
- 遞迴加回溯遞迴
- 遞迴-*快速排序遞迴排序
- 遞迴小記遞迴
- 理解遞迴 Recurtion遞迴
- C#遞迴C#遞迴
- sql server遞迴SQLServer遞迴
- Vue元件遞迴Vue元件遞迴
- 【C++】翻轉二叉樹(遞迴、非遞迴)C++二叉樹遞迴
- kingbase SQL最佳化案例 ( union遞迴 改 cte遞迴 )SQL遞迴
- 快速排序(遞迴及非遞迴演算法原始碼)排序遞迴演算法原始碼
- 徹底理解遞迴,從遞迴的本質說起!遞迴
- ?30 秒瞭解尾遞迴和尾遞迴優化遞迴優化
- Vue3.0的遞迴監聽和非遞迴監聽Vue遞迴
- python-動態規劃的遞迴、非遞迴實現Python動態規劃遞迴
- 揹包問題的遞迴與非遞迴演算法遞迴演算法
- 巢狀類遞迴巢狀遞迴
- 棧Stack——遞迴替身?遞迴