1000的阶乘用c语言实现,用C语言实现计算大数的阶乘
#include #define SIZE 1000
int BigFact(int m, short data[]);
int main()
{
short data[SIZE] = { 0 };//存储SIZE位数,表示SIZE位的大数,并且初始化为0
int i, j;
printf("请输入想要计算阶乘数的数值:");
scanf_s("%d", &i);
int x = BigFact(i, data);//计算阶乘i!,返回阶乘值的位数
if (x) //判断数组是否溢出,无溢出则打印阶乘值,否则打印溢出提示信息
{
printf("%d! = ", i);
for (j = x - 1; j >= 0; j--)//从最高位开始打印每一位阶乘值
printf("%d", data[j]);
printf("\n");
}
else
printf("数据太大,溢出!\n");
return 0;
}
/*****************************************************************************************/
/*功能描述:本函数用于实现计算自然数的阶乘值功能,目的是计算指定数的阶乘 */
/*入口参数:参数m,表示想要计算阶乘数的数值;数组data[],表示用于存储阶乘结果的数组*/
/*出口参数:数组data[],表示阶乘结果 */
/*返回值:返回0或x,当返回0时表示结果溢出,当返回其他数值时表示阶乘值的位数*/
/******************************************************************************************/
int BigFact(int m, short data[])
{
int i, j, k;
data[0] = 1; //初始化阶乘值
int x = 1; //初始化阶乘值的位数
if (m)
{
for (i = 1; i <= m; i++) //累乘计算阶乘m!
{
//乘法阶段
for (j = 0; j < x; j++)
data[j] = data[j] * i;
//进位阶段
for (k = 0; k < x; k++)
{
if (data[k] >= 10)
{
data[k + 1] = data[k + 1] + data[k] / 10;
data[k] = data[k] % 10;
//如果最高位发生进位,则增加阶乘结果位数,同时判断是否溢出
if (k == x - 1)
{
x++;//最高位有进位时,将位数x加1
if (x > SIZE)
return 0;//数据溢出,结束计算并返回0
break; //到最高位结束进位
}
}
}
}
}
return x;
}
1000的阶乘用c语言实现,用C语言实现计算大数的阶乘相关推荐
- 7-100 简单求阶乘问题 (10 分)本题要求编写程序,计算N的阶乘。输入格式:输入在一行中给出一个不超过12的正整数N。输出格式:在一行中输出阶乘的值。输入样例:4结尾无空行
7-100 简单求阶乘问题 (10 分) 本题要求编写程序,计算N的阶乘. 输入格式: 输入在一行中给出一个不超过12的正整数N. 输出格式: 在一行中输出阶乘的值. 样例">输入样例 ...
- C#阶乘类,可以精确计算大数的阶乘,10000的阶乘只要1.3秒左右
关于阶乘,老郭和宝宝等前辈做了大量研究,计算速度也达到了非常快的水准.本文宗旨不在于和他们比快,因为他们专门为阶乘做了很多优化.本文介绍的是使用C#直接计算的方法,速度虽然不能跟他们相比,但在一般场合 ...
- 阶乘类,可以精确计算大数的阶乘,10000的阶乘只要1.3秒左右
关于阶乘,老郭和宝宝等前辈做了大量研究,计算速度也达到了非常快的水准.本文宗旨不在于和他们比快,因为他们专门为阶乘做了很多优化.本文介绍的是使用C#直接计算的方法,速度虽然不能跟他们相比,但在一般场合 ...
- c语言22阶乘太大,C语言计算大数阶乘的方法
C语言计算大数阶乘的方法,整数,数组,阶乘,本文,格式 C语言计算大数阶乘的方法 易采站长站,站长之家为您整理了C语言计算大数阶乘的方法的相关内容. 本文实例为大家分享了C语言计算大数阶乘的具体代码, ...
- c语言 n阶阶乘尾0个数,计算n的阶乘(n!)末尾0的个数
题目: 给定一个正整数n,请计算n的阶乘n!末尾所含有"0"的个数. 举例: 5!=120,其末尾所含有的"0"的个数为1: 10!= 3628800,其末尾所 ...
- 实验2-4-4 求阶乘序列前N项和 (C语言)
实验2-4-4 求阶乘序列前N项和 (C语言) 本题要求编写程序,计算序列 1!+2!+3!+⋯ 的前N项之和. 输入格式: 输入在一行中给出一个不超过12的正整数N. 输出格式: 在一行中输出整数结 ...
- 7-223 sdut-C语言实验-求阶乘(循环结构)7-224 sdut-C语言实验-排序问题7-225 sdut-C语言实验- 冒泡排序中数据交换的次数
目录 7-223 sdut-C语言实验-求阶乘(循环结构) 7-224 sdut-C语言实验-排序问题 7-225 sdut-C语言实验- 冒泡排序中数据交换的次数 7-223 sdut-C语言实验- ...
- n的阶乘三种实现方法(C语言)
最近整理了曾经写的程序,把n的阶乘三种实现方法与小伙伴们分享,希望能给初学者一些帮助. 1.递归 #include <stdio.h> int Fact(int n); int main( ...
- 大一上半学期基础C语言程序(四则运算,日期求天数,阶乘....)
author:刘钟泽 我所安装的编译器(IDE) Code::Blocks(内置摸鱼插件), Visual C++ 6.0(十分陈旧), Visual Studio 2019(比较全面,但是文件较大) ...
最新文章
- 计算机视觉:你必须了解的图像数据底层技术
- NMAP分布式扫描工具dnmap
- 无向图的最短路径求解算法之——Dijkstra算法
- SQLSERVER 性能优化统计信息
- Java导入导出CSV文件
- ATOM插件库,收藏以备不时仔细!
- 如何合理的规划一次 JVM 性能调优
- 出口同比中国经济三大怪状折射出啥危机?
- git配置密钥后无法pull
- 虚幻四中怎么保持导入模型坐标_「虚幻引擎5」为何让开发者们拍手叫好?它到底厉害在哪?...
- 各省简称 拼音 缩写_求全国各城市的拼音和简写拼音。
- 小米笔记本 镜像_小米笔记本Air 13.3原装出厂WIN10 2004 ISO镜像下载
- 常见计算机软件故障有哪些,电脑常见问题有哪些,电脑硬件/软件常见问题及处理方法...
- java.lang.OutOfMemoryError异常及相关问题解决
- 【笔试】计算机网络知识点整理
- 对抗苹果隐私新规?iOS应用1个月没更新 谷歌回应了
- 解决:tcpdump -w xxxxx.pcap 提示 Permission denied
- gts250 linux驱动下载,下载:NVIDIA显卡Linux驱动190.32测试版
- 学习笔记——STM32C8T6如何配置普通IO口
- JAVA CDI 学习(1) - @Inject基本用法
热门文章
- 阿里Fastjson使用
- Leap Motion新手入门必看教程
- 开启混合睡眠 解决Hybrid Sleep The hypervisor does not support this standby statewindows
- 最懂程序员面试的人,不一定是最优秀的开发者
- android 4.3新功能,Android 4.3新功能曝光
- C语言开发MicroPython模块(添加module)
- ABBYY FineReader16最新PDF图片文字识别软件
- ZZULIOJ-1102: 火车票退票费计算(函数专题)(Java)
- BIO,NIO,AIO分别是什么?他们有什么区别?
- 客户端与服务端长连接的几种方式