永发信息网

有关阶乘的运算

答案:2  悬赏:0  手机版
解决时间 2021-02-13 10:28
  • 提问者网友:姑娘长的好罪过
  • 2021-02-13 03:47
有关阶乘的运算
最佳答案
  • 五星知识达人网友:七十二街
  • 2021-02-13 04:36
3!=3×2×1=6
全部回答
  • 1楼网友:杯酒困英雄
  • 2021-02-13 05:49
#include int main() { int n; int a[9000]; //确保保存最终运算结果的数组足够大 int digit = 1; //位数 int temp; //阶乘的任一元素与临时结果的某位的乘积结果 int i,j,carry; //进位 printf("please in put n:\n"); scanf("%d",&n); a[0] = 1; //将结果先初始化为1 for(i = 2; i <= n; i++) { //开始阶乘,阶乘元素从2开始依次"登场" //按最基本的乘法运算思想来考虑,将临时结果的每位与阶乘元素相乘 for( j = 1, carry = 0; j <= digit; j++) { //carry:进位 temp = a[j-1] * i + carry; //相应阶乘中的一项与当前所得临时结果的某位//相乘(加上进位) a[j-1] = temp % 10; //更新临时结果的位上信息 carry = temp / 10; //看是否有进位 } while(carry) { //如果有进位 a[++digit-1] = carry % 10; //新加一位,添加信息。位数增1 carry = carry/10; //看还能不能进位 } } printf("n ! = "); //显示结果 for(j = digit; j >=1;j--) { printf("%d",a[j-1]); } printf("\n"); return 0; } 这个是比较通用的算法,你可以验证其正确性. (excel 有阶乘的功能,你随便输入一个数,用单元格写=fact(100),就可以知道值是多少.)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯