此次做業屬於哪一個課程 | C語言程序設計 |
---|---|
此次做業要求在哪 | 要求 |
我在這個課程的目標是 | 學會運用字符排序 |
這個做業在那個具體方面幫助我實現目標 | 字符串的計數和排序 |
參考文獻 | c語言教科書和大佬博客 |
7-1 漢諾塔問題* (10 分)數組
漢諾塔是一個源於印度古老傳說的益智玩具。聽說大梵天創造世界的時候作了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞着64片黃金圓盤,大梵天命令僧侶把圓盤移到另外一根柱子上,而且規定:在小圓盤上不能放大圓盤,每次只能移動一個圓盤。當全部圓盤都移到另外一根柱子上時,世界就會毀滅。
請編寫程序,輸入漢諾塔圓片的數量,輸出移動漢諾塔的步驟。
輸入格式
圓盤數 起始柱 目的柱 過分柱
輸出格式
移動漢諾塔的步驟
每行顯示一步操做,具體格式爲:
盤片號: 起始柱 -> 目的柱
其中盤片號從 1 開始由小到大順序編號。
輸入樣例函數
3 a c b
輸出樣例學習
1: a -> c 2: a -> b 1: c -> b 3: a -> c 1: b -> a 2: b -> c 1: a -> c
#include<stdio.h> void hanio (int n,char a,char b,char c); int main () { int n; scanf("%d",&n); hanio (n,'a','b','c'); return 0; } void hanio (int n,char a,char b,char c) { if(n==1) { printf("n: %c->%c\n",n,a,b); } else { hanio (n-1,a,c,b); printf("%d: %c->%c\n",n,a,b); hanio (n-1,c,b,a); } }
周/日期 | 這周所花的時間 | 代碼行 | 學到的知識點簡介 | 目前比較困惑的問題 |
---|---|---|---|---|
3/9-3/15 | 3d | 100 | 文件創建及其文件的利用 | 無 |
3/15-3/18 | 4d | 150 | 二位數組和暴力解法 | 最大子數組最優的解法是什麼,如何下降時間複雜度 |
3/18-3/19 | 5d | 250 | 選擇排序法 | 我沒有徹底消化選擇排序法的思路 |
3/25-3/29 | 5d | 250 | 冒泡排序不會 | 指針也不會 |
3/29-4/5 | 5d | 300 | 指針的具體用法 | 函數和指針的結合 |
4/5-4/12 | 6d | 350 | 字符數組和指針的結合 | 綜合運用的方法 |
4/12-419 | 6d | 400 | 指針函數和數組函數 | 拓展函數 |
5/5-5/10 | 6d | 200 | 宏定義 | 基本知識 |
折線圖設計
周/日期 | 這周所花的時間 | 代碼行 |
---|---|---|
3/9-3/15 | 3d | 100 |
3/15-3/18 | 4d | 150 |
3/18-3/19 | 5d | 250 |
3/25-3/29 | 5d | 250 |
3/29-4/5 | 5d | 300 |
4/5-4/12 | 6d | 350 |
4/12-419 | 6d | 400 |
5/5-5/10 | 6d | 200 |
5/5-5/10 | 6d | 200 |