Respectively, to achieve non-recursive and recursive factorial of n - (C language)

Disclaimer: This article is a blogger original article, follow the CC 4.0 BY-SA copyright agreement, reproduced, please attach the original source link and this statement.
This link: https://blog.csdn.net/zz070/article/details/102750971

Ideas:

i.e. n factorial n! = n (n-1) (n-2) ...... 2 * 1, realized as long as n (n-1) can be followed or a recursive loop

Source:

Recursion:

#include<stdio.h>
#include<windows.h>
int Fac(int n)
{
	if (n == 0 || n == 1){
		return 1;
	}
	return n*Fac(n - 1);
}
void main()
{
	int n;
	printf("请输入您想计算阶乘的数> "); 
	scanf_s("%d", &n);
	int result = Fac(n);
	printf("%d的阶乘是> %d\n", n, result);
	system("pause");
}

Non-recursive (iterative):

#include<stdio.h>
#include<windows.h>
int Fac(int n)
{
	int result = 1;
	if (n == 0 || n == 1){
		return 1;
	}
	else{
		while (n > 1){
			 result *= n;
			n--;
		}
	}
	return result;
}
void main()
{
	int n;
	printf("请输入您想计算阶乘的数> "); 
	scanf_s("%d", &n);
	int result = Fac(n);
	printf("%d的阶乘是> %d\n", n, result);
	system("pause");
}

operation result:

Here Insert Picture Description

Guess you like

Origin blog.csdn.net/zz070/article/details/102750971