C语言中如何求大数的阶乘
C语言中如何求大数的阶乘
这篇“C语言中如何求大数的阶乘”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言中如何求大数的阶乘”文章吧。
首先定义一个函数用来将运算结果存入数组
intinto(intk,intx[],int*length){intn,temp,jw=0;//temp临时变量,jw为一次计算结果的进位for(n=0;n<=*length;n++){temp=x[n]*k+jw;x[n]=temp%10;jw=temp/10;}while(jw){x[n]=jw%10;//当有进位时存入进位jw=jw/10;n++;//数组填充长度变化}*length=n-1;//计算次数变化return0;}
完成需要使用的函数构建后,定义主函数和需要的变量及数组。
使用for语句调用函数into()完成数组填充
最后输出数组即为阶乘结果
for(i=2;i<=m;i++){into(i,x,&p);}for(i=p;i>=0;i--)printf("%d",x[i]);
完整源代码如下:
#include<stdio.h>#include<stdio.h>intinto(intk,intx[],int*length){intn,temp,jw=0;for(n=0;n<=*length;n++){temp=x[n]*k+jw;x[n]=temp%10;jw=temp/10;}while(jw){x[n]=jw%10;jw=jw/10;n++;}*length=n-1;return0;}intmain(){intx[100000];inti,m;intp=0;printf("请输入要计算的阶乘数:\n");scanf("%d",&m);x[0]=1;for(i=2;i<=m;i++){into(i,x,&p);}for(i=p;i>=0;i--)printf("%d",x[i]);system("pause");return0;}
以上就是关于“C语言中如何求大数的阶乘”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注恰卡编程网行业资讯频道。
推荐阅读
-
windows安装touble c
近期有些网友想要了解windows?安装touble的相关情况,小编通过整理给您分享一下。为什么现在还需要TurboC?在当今V...
-
C/C++如何获取CAN信号
C/C++如何获取CAN信号本篇内容主要讲解“C/C++如何获取C...
-
C语言怎么通过二分查找实现猜数字游戏
C语言怎么通过二分查找实现猜数字游戏本文小编为大家详细介绍“C语言...
-
C语言数据结构中的线性表怎么使用
C语言数据结构中的线性表怎么使用这篇文章主要介绍“C语言数据结构中...
-
C语言的数据结构怎么理解
C语言的数据结构怎么理解这篇文章主要介绍了C语言的数据结构怎么理解...
-
C语言与C++中内存管理的方法
C语言与C++中内存管理的方法这篇文章主要介绍了C语言与C++中内...
-
C语言链式队列与循环队列怎么实现
C语言链式队列与循环队列怎么实现这篇文章主要介绍了C语言链式队列与...
-
C语言冒泡排序怎么实现
C语言冒泡排序怎么实现这篇文章主要介绍了C语言冒泡排序怎么实现的相...
-
C语言如何实现斐波那契数列
C语言如何实现斐波那契数列这篇文章主要介绍了C语言如何实现斐波那契...
-
C语言如何实现无符号数和有符号数间的运算
C语言如何实现无符号数和有符号数间的运算本篇内容主要讲解“C语言如...