Bootstrap

C语言 输入一个数并打印n的阶乘的三种方法

C语言 输入一个数并打印n的阶乘

题目:输入一个数n,计算并打印出n的阶乘
思路:
举例: 假设n==5,那么5的阶乘= 1 * 2 * 3 * 4 * 5

  1. 用一个数 i 从 1 开始,i++,直到 i<=5
  2. 用一个数 tmp 存每次相乘的值

代码1:for循环

#include <stdio.h>
int main()
{
	int i = 0;
	int n = 0;
	int tmp = 1;
	scanf("%d", &n);
	for (i = 1; i <= n; i++)
	{
		tmp *= i;
	}
	printf("%d的阶乘是%d\n", n, tmp);
	return 0;
}

代码2:相同的可以用while循环来写

#include <stdio.h>
int main()
{
	int i = 1;
	int n = 0;
	int tmp = 1;
	scanf("%d", &n);
	while (i <= n)
	{
		tmp *= i;
		i++;
	}
	printf("%d的阶乘是%d\n", n, tmp);
	return 0;
}

代码3:递归 将上述代码实现阶乘

#include <stdio.h>
int fact(int n)
{
	if (n <= 1)
		return 1;
	else
		return n * fact(n - 1);

}
int main()
{
	int n = 0;
	scanf("%d", &n);
	int ret = fact(n);
	printf("%d的阶乘是%d\n",n,ret);
	return 0;
}
;