1、代码(汉诺塔问题)
#include <stdio.h>
/**
* Hanoi.
*/
void hanoi(int paraN,char paraSource,char paraDestination,char paraTransit) {
if (paraN<=0) {
return;
} else {
hanoi(paraN - 1, paraSource, paraTransit, paraDestination);
printf("%c -> %c \r\n", paraSource, paraDestination);
hanoi(paraN - 1, paraTransit, paraDestination, paraSource);
}// Of if
}// Of hanoi
/**
* Test the hanoi function.
*/
void hanoiTest() {
printf("---- addToTest begins. ----\r\n");
printf("2 plates\r\n");
hanoi(2,'A','B','C');
printf("3 plates\r\n");
hanoi(3,'A','B','C');
printf("---- addToTest ends. ----\r\n");
}// Of addToTest
/**
The entrance.
*/
int main() {
hanoiTest();
}// Of main
2、运行结果
3、小谈
这是一个经典的汉诺塔问题,通过递归实现。其中,参数paraN代表盘子数,paraSource代表起始柱子,paraDestination代表目标柱子,paraTransit代表中转柱子。通过递归实现的过程,将大问题分解为更小的问题,最终实现了整个问题的解决。同时,代码中也体现了良好的命名规范和注释规范,使得代码易于理解和阅读。