递归函数
目录
一、定义
在函数体中调用自身的过程,执行时会反复调用,直到达到结束条件时停止
二、必要条件
1.需要存在限制条件
2.每次递归调用后越来越接近限制条件
三、运用递归的代码
-
运用递归打印输入数的每一位
#include <stdio.h> void print(int x) { if (x > 9) { print(x / 10); } printf("%d", x % 10); } int main() { int a = 0; scanf("%d", &a); print(a); return 0; }
-
递归实现strlen的功能
#include <stdio.h> int my_strlen(char* str) { int i = 0; if (*str != '\0') return i = 1 + my_strlen(str + 1); } int main() { printf("%d",my_strlen("hello worllld!")); return 0; }
-
运用递归计算k的n次方
#include <stdio.h> int power(int x,int y) { if (y != 0) { if (y != 0) return power(x, y - 1) * x; else if (y == 0) return 1; } } int main() { int k = 0; int n = 0; int i = 0; int ret = 1; scanf("%d %d", &n, &k); printf("%d",power(n, k)); return 0; }
-
递归计算输入整数各位相加之和
#include <stdio.h> int DigitSum(int x) { if (x / 10 != 0) return x % 10 + DigitSum(x / 10); else if (x / 10 == 0) return x%10; } int main() { int a = 0; scanf("%d", &a); printf("%d", DigitSum(a)); return 0; }