c语言实现得到1到100的阶乘的值

大耗子 2020年02月24日 290次浏览

文章链接:https://codemouse.online/archives/345678903467

使用数组扩展位长,扩展int,long类型不够长的情况使用

#include <stdio.h>
void main()
{
	//位数
	int idex = 1;
	int arr[1024] = { 1, 0 };
	for (int i = 1; i <= 100; i++)
	{
		//进位,每次进位后清0;
		int ijinwei = 0;
		for (int j = 0; j < idex; j++)
		{
			arr[j] = arr[j] * i + ijinwei;
			//取出进位
			ijinwei = arr[j] / 10;
			//余数写进去
			arr[j] %= 10;
		}
		//降级
		while (ijinwei > 0)
		{
			arr[idex++] = ijinwei % 10;
			ijinwei /= 10;
		}
	}
	//打印
	for (int i = idex - 1; i >= 0; i--)
	{
		printf("%c", arr[i] + '0');
	}
}