你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)
#include <stdio.h>
void Factorial(int n);//声明函数Factorial
int main()//主函数,输入n的值
{
int n;
scanf("%d",&n);
Factorial(n);//把n的值传给函数Factorial
return 0;
}
void Factorial(int n)//定义函数Factorial
{
int i,j;//定义循环变量
int temp;//定义中间结果变量
int carry;//定义进位数变量
int len=1;//定义结果长度变量
int a[10000]={0};//定义结果数组
a[0]=1;//初始结果为1
for (i=2;i<=n;i++)//循环n次,求n的阶乘
{
carry=0;//使每次进位数为零
for (j=0;j<len;j++)//保存每一位数字并判断结果是否需要增长
{
temp=a[j]*i+carry;//计算中间结果
a[j]=temp%10;//保存每一位数字,从后往前
carry=temp/10;//计算进位数
if (j>=len-1 && carry>0)//判断结果是否需要增长
{
len++;
}
}
}
for (i=len-1;i>=0;i--)//输出最终结果
{
printf("%d",a[i]);
}
}