C语言 输入一个数并打印n的阶乘
题目:输入一个数n,计算并打印出n的阶乘
思路:
举例: 假设n==5,那么5的阶乘= 1 * 2 * 3 * 4 * 5
- 用一个数 i 从 1 开始,i++,直到 i<=5
- 用一个数 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;
}