遞迴程式設計2(C語言)

2021-09-24 05:57:51 字數 1530 閱讀 1560

實驗內容

題目1:將非負十進位制整數n轉換成b進製。(其中b=2~16)

題目2:任何乙個正整數都可以用2的冪次方表示。例如:

137=27+23+2^0    

同時約定冪次方用括號來表示,即ab 可表示為a(b)。

由此可知,137可表示為:

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

進一步:7= 22+2+20 (21用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+2^0

所以1315最後可表示為:

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

輸入:正整數(n≤20000)

輸出:符合約定的n的0,2表示(在表示中不能有空格)

輸入格式 input format

乙個正整數

輸出格式 output format

符合約定的n的0,2表示(在表示中不能有空格)

樣例輸入 sample input

73樣例輸出 sample output

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

遞迴模型

遞迴棧題目一:

4. **實現

1.題目一:

(1)遞迴實現:

#include #define n 100

char a[n]=;

int i=0;

void changenum(int n,int b)

else

else }}

int main(void)

;static int i=0;

void changenum(int n,int b)

else

n=n/b; }}

int main(void)

printf("\n");

return 0;

}

2.題目二:

遞迴實現

#include using namespace std; 

/*//n為運算元,r為遞迴深度

void fun(int n, int r)

測試及執行結果

題目一:

題目二:

經驗總結

經過這次的程式設計,尤其是題目2,讓我更加深刻地理解了遞迴的巧妙之處:化繁為簡。讓問題簡單化,即先設計出一種解決方式,然後思考這種解決方式是否對所有情況通用,如果通用則用遞迴,那麼問題就變得十分簡單。雖然剛開始接觸遞迴的時候,總是想不通為什麼要這樣寫,但是慢慢地理解了遞迴,現在感覺遞迴不是很難了。

2 C 程式設計學習 Windows Forms

2.c 程式設計學習 windows forms windows form 是 microsoft windows 應用程式開發的新平台,以 net framework 為基礎。這種架構提供清晰 物件導向且可延伸的類別集,讓您能夠開發各種 windows 應用程式。乙個單獨的應用程式可以同時包括這兩...

2 C語言位操作

常用位操作 在這裡插入描述 位異或 兩位都相等,結果為0,不相等則為1 左移位 將乙個運算元的各二進位制全部左移若干位,左邊移除出去的二進位制位丟棄,右邊的二進位制位補0。每進行一次左移位操作,得到的結果是原來運算元的一倍 x n x 2 n 位操作與暫存器 暫存器的操作 1 暫存器特定位的清零用 ...

C語言筆錄 2 C 語言中 static

c 語言中 static 的作用 1.先來介紹它的第一條也是最重要的一條 隱藏。當我們同時編譯多個檔案時,所有未加 static 字首的全域性變數和函式都具有全域性可見性。為理解這句話,我舉例來說明。我們要同時編譯兩個原始檔,乙個是 a.c,另乙個是 main.c。下面是 main.c 的內容 下面...