递归

mac2024-04-18  30

递归

阶乘

#include<stdio.h> int Fac(int n) { int tmp; if (n == 0) { tmp = 1; } else { tmp = n*Fac(n - 1); } return tmp; } int main() { printf("%d\n", Fac(5)); return 0; }

斐波那切数列

#include<stdio.h> int Fibona(int n) { if (n == 1 || n == 2) { return 1; } else { return Fibona(n - 2) + Fibona(n - 1); } } int main() { printf("%d\n", Fibona(5)); return 0; }

斐波那切数列是最不适合递归的数列

汉诺塔

#include<stdio.h> void Move(char x, char y) { printf("%c->%c\n", x, y); } void Hanoi(int n, char a, char b, char c) { if (n == 1) { Move(a, c); } else { Hanoi(n - 1, a, c, b); Move(a, c); Hanoi(n - 1, b, a, c); } } int main() { Hanoi(3, 'A', 'B', 'C'); return 0}
最新回复(0)