//在tc3.0++在運行
//a數組用于隨機產生1-6數表示每個方格后面的圖形.用inita()函數來實現
//c數組用于記錄方格的狀態,用字符L(lock)表示沒有打開的方格
//D(delete)表示已消去的方格.O(open)表示打開的方格.
//變量m表示按回車鍵的有效次數.也是記憶力參數,越小記憶力越好
//變量xpos,ypos用于表示當前光標所在的位置
//(x1,y1),(x2,y2)用于記錄打開的兩個方格的位置
//judge()函數用于控制光標范圍,使其不能移出長方形
//win()函數用于判斷游戲是否過關,通過判斷每個方格是否全是 D 狀態
//xago,yago 用于記錄移動前的位置
//ax,ay表示行列式的行與列,用它們來控制游戲的關數,ax位于3-6之間,ay位于4-7之間
//z來控制方格后的圖形
//第一關后面的圖形用1-6代表的圖形.第二關后面的圖形用0-9十個數。第三關后面的圖形用A-O十五個字母,
//第四關后面的圖形用A-T二十一個字母
標簽:
inita
lock
3.0
數組
上傳時間:
2015-06-19
上傳用戶:hgy9473
河內塔問題
#include<stdio.h>
#include<stdlib.h>
int fun_a(int)
void fun_b(int,int,int,int)
int main(void)
{
int n
int option
printf("題目二:河內塔問題\n")
printf("請輸入要搬移的圓盤數目\n")
scanf("%d",&n)
printf("最少搬移的次數為%d次\n",fun_a(n))
printf("是否顯示移動過程? 是請輸入1,否則輸入0\n")
scanf("%d",&option)
if(option==1)
{
fun_b(n,1,2,3)
}
system("pause")
return 0
}
int fun_a(int n)
{
int sum1=2,sum2=0,i
for(i=n i>1 i--)
{
sum1=sum1*2
}
sum2=sum1-1
return sum2
}
void fun_b(int n,int left,int mid,int right)
{
if(n==1)
printf("把第%d個盤子從第%d座塔移動到第%d座塔\n",n,left,right)
else
{
fun_b(n-1,left,right,mid)
printf("把第%d個盤子從第%d座塔移動到第%d座塔\n",n,left,right)
fun_b(n-1,mid,left,right)
}
}
標簽:
int
include
stdlib
fun_a
上傳時間:
2016-12-08
上傳用戶:努力努力再努力