第二周项目三—时间复杂度
分类:
文章
•
2025-04-29 18:24:22
-
/*
-
* Copyright (c++) 2017, 烟台大学计算机学院
-
*All rights reserved,
-
* 文件名: main.cpp
-
* 作 者:刘照京
-
*完成日期:2017年 9月 14日;
-
* 第三周 :汉诺塔问题
-
*/
-
#include <stdio.h>
-
#define discCount 20
-
long move(int, char, char,char);
-
int main()
-
{
-
long count;
-
count=move(discCount,'A','B','C');
-
printf("%d个盘子需要移动%ld次\n", discCount, count);
-
return 0;
-
}
-
-
long move(int n, char A, char B,char C)
-
{
-
long c1,c2;
-
if(n==1)
-
return 1;
-
else
-
{
-
c1=move(n-1,A,C,B);
-
c2=move(n-1,B,A,C);
-
return c1+c2+1;
-
}
-
}
-
结果图
-
盘子数为4
-
-
盘子数为8
-
-
盘子数为16
-
-
盘子数为64
-
-
知识点总结:64个盘子加载不出来。
-
学习心得:时间复杂度对于设计算法来说十分重要。