大数相乘模板
来源:互联网 发布:平安科技待遇 知乎 编辑:程序博客网 时间:2024/06/05 13:34
自己以前的写的一个两个大数数相乘
#include<stdio.h>#include<string.h>using namespace std;#define N 2000char z[N],a[1000],b[1000],c[N];int l1,l2;void jf(){ int i; for(i=N-1; i>=0; i--) { if(c[i]+z[i]-96>9) { z[i-1]=z[i-1]+1; z[i]=z[i]+c[i]-48-10; } else z[i]=c[i]+z[i]-48; } return ;}void cf(int g,char A){ int i,j,cs,k; for(i=l1-1; i>=0; i--) { memset(c,'0',sizeof(c)); cs=(a[i]-'0')*(A-'0'); for(j=l1-1-i+g,k=N-1; j>0; j--,k--) c[k]='0'; while(cs!=0) { c[k]=cs%10+48; cs=cs/10; k--; } jf(); } return ;}int main(){ int i,k; while(gets(a)) { gets(b); memset(z,'0',sizeof(z)); l1=strlen(a); l2=strlen(b); for(i=l2-1; i>=0; i--) cf(l2-1-i,b[i]); for(k=0; k<=N-1; k++) if(z[k]!='0') break; if(k==N) printf("0"); else for(; k<=N-1; k++) printf("%c",z[k]); printf("\n\n"); } return 0;}
下面的这个是大数的阶乘
#include<bits/stdc++.h>using namespace std;#define N 1000char z[N],a[1000],b[1000],c[N];int l1,l2;int fz(){ int k=0; for(int i=0; i<=N-1; i++) { if(z[i]==0) continue; else a[k++]=z[i]; } return k;}void jf(){ int i; for(i=N-1; i>=0; i--) { if(c[i]+z[i]-96>9) { z[i-1]=z[i-1]+1; z[i]=z[i]+c[i]-48-10; } else z[i]=c[i]+z[i]-48; } return ;}void cf(int g,char A){ int i,j,cs,k; for(i=l1-1; i>=0; i--) { memset(c,'0',sizeof(c)); cs=(a[i]-'0')*(A-'0'); for(j=l1-1-i+g,k=N-1; j>0; j--,k--) c[k]='0'; while(cs!=0) { c[k]=cs%10+48; cs=cs/10; k--; } jf(); } return ;}void cfsc(){ int k; for(k=0; k<=N-1; k++) if(z[k]!='0') break; if(k==N) printf("0"); else for(; k<=N-1; k++) printf("%c",z[k]); printf("\n");}int main(){ int i,k; int n,t; scanf("%d",&t); while(t--) { scanf("%d",&n); memset(z,'0',sizeof(z)); z[N-1]='1'; for(int dt=1; dt<=n; dt++) { l1=fz(); itoa(dt,b,10); memset(z,'0',sizeof(z)); l2=strlen(b); for(i=l2-1; i>=0; i--) cf(l2-1-i,b[i]); } cfsc(); } return 0;}
原创请标明出处 http://blog.csdn.net/xky140610205?viewmode=contents
阅读全文
0 0
- [模板] 大数相乘模板
- 大数相乘模板
- 大数相乘模板
- FFT 模板 大数相乘
- 大数相乘模板
- 大数相加 大数相乘 模板
- 大数相乘(简单模板)
- 模板——大数相乘
- 大数相乘(大数阶乘模板)
- 我个人的大数相乘模板
- 蓝桥杯PREV-34(数论+大数相乘大数开方模板)
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- scala访问修饰符
- Bell HDU
- onFailure unexpected end of stream
- HDU
- sqoop 从oracle到hive数据错位,并产生很多null值,clob类型被截取成一小段一小段
- 大数相乘模板
- Java中的浅克隆和深克隆
- linq比较日期的方式
- 静态成员和静态成员函数
- eclipse打开properties配置文件中文显示字符的编码
- RocketMQ实战(二)
- LeetCode(17)--Letter Combinations of a Phone Number
- Mac anaconda OpenCV环境配置
- C++继承