[Lenguaje C] Función y tema básico de recursividad

Calcular el factorial de n

imagen.png

recursión

//使用递归计算n的阶乘
#include<stdio.h>
int Jiecheng(int n)
{
    
    
	if (n<=1)
	{
    
    
		return 1;
	}
	else
	{
    
    
		return n * Jiecheng(n - 1);
	}
}
int main()
{
    
    
	int n = 0;
	scanf("%d", &n);
	int ret = Jiecheng(n);
	printf("%d", ret);
	return 0;
}

La línea roja es la llamada, la línea azul es el valor devuelto.
imagen.png
El proceso de ejecución recursivo se puede ver más claramente a través de la imagen de arriba.

ciclo

int Jiecheng(int n)
{
    
    
	int count = 1;
	while (n>1)
	{
    
    
		count = count * n;
		n--;
	}
	return count;
}
int main()
{
    
    
	int n = 0;
	scanf("%d", &n);
	int ret = Jiecheng(n);
	printf("%d", ret);
	return 0;
}

Encuentre el n-ésimo número de Fibonacci. (no se considera desbordamiento)

imagen.png

recursión

#include<stdio.h>
int Fib(int n)
{
    
    
	if (n>=3)
	{
    
    
		return Fib(n - 1) + Fib(n - 2);
	}
	else
	{
    
    
		return 1;
	}
}
int main()
{
    
    
	int n = 0;
	scanf("%d", &n);
	int ret = Fib(n);
	printf("%d", ret);
	return 0;
}

ciclo

#include<stdio.h>
int Fib(int n)
{
    
    
	int a = 1;
	int b = 1;
	int c = 1;
	while (n>2)
	{
    
    
		c = a + b;
		a = b;
		b = c;
		n--;
	}
	return c;
}
int main()
{
    
    
	int n = 0;
	scanf("%d", &n);
	int ret = Fib(n);
	printf("%d", ret);
	return 0;
}

Este blog presenta principalmente cómo usar la recursividad y los bucles para resolver problemas, con la esperanza de ayudarlo a comprender mejor la recursividad y los bucles.

Supongo que te gusta

Origin blog.csdn.net/weixin_63284756/article/details/130422635
Recomendado
Clasificación