LOADING

加载过慢请开启缓存 浏览器默认开启

C语言常用算法

递归学习:

[]: https://www.iamshuaidi.com/272.html

汉诺塔问题

[]: https://blog.csdn.net/qq_53162179/article/details/126682456

#include <stdio.h>

int hnt(int n,char start,char destination,int spar) {
    if (n == 1) {
        printf("把第%d个从%c移动到%c\n", n, start, destination);
        return 1;
    }
    // 移动 n-1 个盘子到辅助柱子
    int step1 = hnt(n - 1, start, spar, destination);
    // 移动第 n 个盘子到目标柱子
    printf("把第%d个从%c移动到%c\n", n, start, destination);
    // 移动 n-1 个盘子从辅助柱子到目标柱子
    int step2 = hnt(n - 1, spar, destination, start);
    // 返回总的移动次数
    return step1 +step2 +1 ;
}

int main() {
    printf("总共需要%d步",hnt(3, 'A', 'C', 'B'));
    return 0;
}

约瑟夫问题

[]: