大数阶乘
来源:互联网 发布:js文件md5 编辑:程序博客网 时间:2024/06/03 14:15
1.防止溢出的一种方式,有些数字超出int范围,这时候用int就会溢出。这时候要用到大数的思想。
例子:
#include <stdio.h>int main(){ int n;//阶乘大小 printf("请输入n的大小:"); scanf("%d",&n); int a[40001];//确保保存最终运算结果的数组足够大 int carry;//进位 int digit=1;//位数 a[0]=1;//将结果先初始化为1 int temp;//阶乘的任一元素与临时结果的某位的乘积结果 int i,j; for(i=2;i<=n;++i){//开始阶乘,阶乘元素从2开始一次登场 for(j=1,carry=0;j<=digit;++j){//按最基本的乘法运算思想来考虑,将临时结果每一位与阶乘元素相乘 temp=a[j-1]*i+carry;//相应阶乘中的一项与当前所得临时结果的某位相乘(加上进位) a[j-1]=temp%10;//更新临时结果的位上信息 carry=temp/10;//看看是否有进位 } while(carry){//如果有进位 a[++digit-1]=carry%10;//新加一位,添加信息。位数增1 carry/=10;//看看还能不能进位 } } printf("结果是:\n%d!=",n);//显示结果 for(i=digit;i>=1;--i) printf("%d",a[i-1]); return 0;}
有什么问题加我QQ:839505138.
阅读全文
0 0
- 大数阶乘
- 大数阶乘。
- 大数阶乘
- ~阶乘~大数
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘
- 大数阶乘!!
- 大数阶乘
- 大数阶乘
- 大数阶乘
- Protobuf 的 proto3 与 proto2 的区别
- Mybatis curd操作
- 基于优先级的抢占式调度
- Spring源码阅读之-BeanFactory(一)
- NETGEAR路由器登录不上 重新获取ip
- 大数阶乘
- HashTable详细介绍(一)
- VxWorks时间片轮转调度
- <span> 与<div>的区别
- 集合 (一个容器) 存储数据
- hdu 6053 (莫比乌斯反演+容斥)
- adb常用命令总结
- Deeply Learned Attributes for Crowded Scene Understanding(WWW dataset)
- qduoj 156 暴力过算我输 思维+单调栈