C语言:计算n的阶乘(不考虑溢出)

题目:

从键盘输入一个值n,计算n的阶乘

如:输入5,计算5的阶乘 --> 5! = 1 * 2 * 3 * 4 * 5

                

思路:

第一步:

创建一个变量 ret ,用来存放每次相乘后的值

因为 0 乘 任何数都为 0,所以应初始化为 1

              

 实现代码:

//计算n的阶乘:
#include <stdio.h>

int main()
{
	//输入n:
	int n = 0;
	scanf("%d", &n);

	//创建一个变量 ret ,用来存放每次相乘后的值,因为 0 乘 任何数都为 0,所以应初始化为 1
	int ret = 1;




	return 0;
}

实现图片:

              


                  

第二步:

利用 for循环 和前面输入的 n 循环生成 1~n 个数

使用上一步的 ret变量 依次相乘生成的 1~n 个数

这也是前面把 ret  初始化为 1 的原因防止0乘任何数都为0

赋给 ret变量 本身

               

实现代码:

//计算n的阶乘:
#include <stdio.h>

int main()
{
	//输入n:
	int n = 0;
	scanf("%d", &n);

	//创建一个变量 ret ,用来存放每次相乘后的值,因为 0 乘 任何数都为 0,所以应初始化为 1
	int ret = 1;

	//利用 for循环 和前面输入的 n 循环生成 1~n 个数,
	//再使用上一步的 ret变量 依次相乘生成的 1~n 个数,
	//这也是前面把 ret  初始化为 1 的原因,防止0乘任何数都为0,
	//再赋给 ret变量 本身。
	int i = 0;
	for (i = 1; i <= n; i++) //利用 for循环 和前面输入的 n 循环生成 1~n 个数
	{
		ret = ret * i;//再使用上一步的 ret变量 依次相乘生成的 1~n 个数,再赋给 ret变量 本身
	}


	return 0;
}

                   

实现图片:

                

 最终代码和实现效果:

最终代码:

//计算n的阶乘:
#include <stdio.h>

int main()
{
	//输入n:
	int n = 0;
	scanf("%d", &n);

	//创建一个变量 ret ,用来存放每次相乘后的值,因为 0 乘 任何数都为 0,所以应初始化为 1
	int ret = 1;

	//利用 for循环 和前面输入的 n 循环生成 1~n 个数,
	//再使用上一步的 ret变量 依次相乘生成的 1~n 个数,
	//这也是前面把 ret  初始化为 1 的原因,防止0乘任何数都为0,
	//再赋给 ret变量 本身。
	int i = 0;
	for (i = 1; i <= n; i++) //利用 for循环 和前面输入的 n 循环生成 1~n 个数
	{
		ret = ret * i;//再使用上一步的 ret变量 依次相乘生成的 1~n 个数,再赋给 ret变量 本身
	}

	printf("%d", ret);

	return 0;
}

                

实现效果:

猜你喜欢

转载自blog.csdn.net/weixin_63176266/article/details/131045543
今日推荐