//漢諾塔求解**實現
/*介紹:漢諾塔問題是典型的分治演算法問題,首先我們來討論最基本的漢諾塔問題。
假設有n個圓盤,三根柱子,a,b,c,需要把n個盤子(從下往上按照大小順序摞著)
從a柱移動到c柱,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動乙個圓盤。
解決辦法;
採用分治法,分而治之,把大問題化解成小問題。故可以把n個盤子看成n-1個盤子,
和第n個盤子,首先我們需要把n-1個盤子移動到b柱子上,然後把第n個盤子移動到c柱子上,
最後把n-1個盤子移動到c柱子上,這樣就用最少的移動次數完成了任務。
*//*
計算移動次數:
如果要計算一共移動了多少次,找出規律即可。
假設移動n個盤子需要移動f(n)次,所以把n-1個盤子移動到b柱子上,需要移動f(n-1)次,
然後把第n個盤子移動到c柱子上,需要移動1次,最後把n-1個盤子移動到c柱子上,需要
移動f(n-1)次,綜上所述,一共移動了 f(n) = 2 f(n-1) + 1 次
*/#include using namespace std;
void move(int n, char a, char b)
}int main()
return 0;
}
分治法迴圈賽實驗報告
include include using namespace std int calendar 100 100 日程表陣列 void gametable int k,int a 100 100 void printtable int k,int a 100 100 int main void ga...
實驗五實驗報告
系統架構圖 首先我在我的電腦裡建立了有名稱要求的資料夾,然後開啟android studio clone了我們的小組專案。此處因為已經clone過了,所以無法再把這個專案clone進去 進行編譯,執行,測試均正常 我在遊戲主介面載入了乙個toast,點選可以短暫地顯示我的學號資訊 首先在封面檔案裡我...
實驗六實驗報告
實驗結論 part1 結構體型別及程式設計應用 1.補足程式 include const int n 5 定義結構體型別struct student,並定義stu為其別名 typedef struct student stu 函式宣告 void input stu s,int n int findm...