10000位内高精度乘法(大数乘法)1…
来源:互联网 发布:有人做淘宝秒杀群 编辑:程序博客网 时间:2024/05/19 03:20
大整数乘法.模拟小学生算数.#include <stdio.h>#include <string.h>#define size 10000+2#define truesize size-1-1int ans[size*size*100]={0};int multiply(char a[size],int sa,char b[size],int sb){ int i,j,k,pa,pb,ec=0; long last=0; for(i=0;(pa=truesize-i)>=sa;i++){ long cp=0; for(j=0;(pb=truesize-j)>=sb;j++){ int na=a[pa]-'0'; int nb=b[pb]-'0'; cp=cp+na*nb; ans[ec=truesize-i-j]+=cp; cp/=10; } while(cp&&ec-1){ ans[--ec]+=cp; cp/=10; } } ec=truesize; last=0; while(ec>=0){ last+=ans[ec]; ans[ec--]=last; last/=10; } for(i=0;i<=truesize;i++) if(ans[i])break; return i;}int read(char c[size]){ int l=0,i; char t[size]=""; c[truesize+1]='\0'; while(t[l]=getchar()){ if(t[l]=='\n'||t[l]==' '){ l--; break; } l++; } for(i=0;i<=l;i++) c[truesize-(l-i)]=t[i]; return truesize-l;}void show(int i){ if(i<=truesize) for(;i<=truesize;i++) printf("%d",ans[i]); else printf("%d",0); printf("\n");}int main(){ char a[size]=""; char b[size]=""; int sa=read(a); int sb=read(b); int sc=multiply(a,sa,b,sb); show(sc); return 0;}
0 0
- 10000位内高精度乘法(大数乘法)1…
- 高精度计算 大数乘法
- 大数_高精度乘法
- 高精度--大数乘法 luogu
- 高精度乘法,大数相乘
- 大数,高精度计算---大数乘法
- uva 10106 Product(高精度大数乘法)
- POJ 1001 Exponentiation (高精度/大数乘法)
- 高精度乘法(压位)
- 【高精度】-DLUTOJ-1176-大数乘法
- 6、大数,高精度计算---大数乘法
- voj1040 高精度乘法 多位
- POJ 2389 Bull Math 高精度(大数)乘法 模板
- AOJ152 A X B problem(大数相乘、高精度乘法)
- 高精度乘法(不压位)
- 高精度乘法(小数)
- 高精度乘法(正整数)
- 高精度模板(乘法)
- 从编程角度揭示病毒感染原理--之乾坤大挪移(PE病毒文件感染原理)
- 以汉诺塔来理解递归
- 大数乘法
- 静态栈_傻瓜式寻路
- linpack测试环境搭建
- 10000位内高精度乘法(大数乘法)1…
- loj 筛法求幸运数
- Swift学习 --- 2.7闭包
- 天平称量假币
- loj幂方分解
- Unity3D:优化、资源、预编译
- loj集合操作
- 详细解说kmp,第五届蓝桥杯决赛第三题
- java连接数据库,Jtabel显示方法