N!(大整数乘法)
2012-07-28 10:50
246 查看
杭电1042
View Code
View Code
#include<stdio.h> #include<memory.h> int a[10000]; int Mulity(int n) { int carry,i,j,w,g,t; memset(a,0,sizeof(a)); a[0]=1; w=1; //刚开始时只有1位 for(i=1;i<=n;i++) { carry=0; t=w; //用数字与原有的结果的各位的数字一一相乘,从而分解数字(利于存储)!!! for(j=0;j<w;j++) { g=a[j]; a[j]=(g*i+carry)%10000; //得到数字的每四位数字,将十进制数改为“万进制数” carry=(g*i+carry)/10000; //carry表示进位,类似于大整数的加法!!! if(carry && j==w-1) { t++; a[j+1]=carry; carry=0; } } w=t; } return w; } int main() { int n,i,j; while(scanf("%d",&n)!=EOF) { j=Mulity(n); printf("%d",a[j-1]); for(i=j-2;i>=0;i--) printf("%04d",a[i]); // 对于不满四位的数字,在前面对其补0!!! printf("\n"); } return 0; }
相关文章推荐
- poj2389 大整数乘法
- 大整数乘法 多组输入
- Pku百练2980(大整数乘法)
- 用python写高精度的数据乘法,要求输入的书不大于256的正整数,计算其结果
- 大整数的乘法问题
- java大整数的乘法
- POJ 2389——Bull Math, 大整数乘法的另一种解法
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 算法系列:大整数的乘法
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- 大整数乘法
- AtCoder Beginner Contest 085 C Otoshidama(计算机整数乘法问题+方程求解)
- POJ2980大整数乘法
- 递归分治-大整数乘法
- [BZOJ2179]大整数乘法 快速傅里叶变换
- 大整数运算之 大整数加法、减法、乘法
- 大整数乘法
- 使用main函数的参数,实现一个整数计算器,程序可以接受三个参数,第一个参数“-a”选项执行加法,“-s”选项执行减法,“-m”选项执行乘法,“-d”选项执行除法,后面两个参数为操作数。
- poj2389-Bull Math(大整数乘法)
- 大整数乘法(高精度)