不知道进位,子函数也不知道怎么写出来,求大佬指点一下
1条回答 默认 最新
- CSDN专家-天际的海浪 2021-09-25 16:50关注本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报CSDN专家-天际的海浪 2021-09-25 16:53
#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]); } }
赞回复