大数相乘
2013-09-29 18:50
363 查看
比赛中经常会遇到大数问题,自己写了一个大数相乘的模板,可能会有Bug,先凑合看吧;
#include<stdio.h> #include<string.h> const int M = 100; void GetDigit(char s[],int a[]) { int i; memset(a,0,sizeof(int)*M); int len = strlen(s); for(i = 0; i < len; i++) { a[len-1-i] = s[i]-'0'; } } void Multiply(int a[], int b[], int c[]) { int i,j; for(i = 0; i < M*2; i++) c[i] = 0; for(i = 0; i < M; i++) { for(j = 0; j < M; j++) { c[i+j] += a[i]*b[j]; } } for(i = 0; i < 2*M; i++) { c[i+1] += c[i]/10; c[i] %= 10; } } int main() { char s1[M],s2[M],s[M*2]; int a[M],b[M],c[M*2]; int i,j; while(~scanf("%s %s",s1,s2)) { int len1 = strlen(s1); int len2 = strlen(s2); GetDigit(s1,a); GetDigit(s2,b); Multiply(a,b,c); while(c[j] == 0) j--; for(i = j; i >= 0; i--) printf("%d",c[i]); printf("\n"); } return 0; }
相关文章推荐
- 剖析Spring容器的作用及实现方式
- 阿里巴巴笔试题选解
- 早读!数据分析之如何用数据?--转载微博
- 1055. The World's Richest (25)
- 1055. The World's Richest (25)
- Xcode开发技巧之code snippets(代码片段)
- 教你如何做简单的数据分析--转载微博
- Java注释@interface的用法
- 一步步学算法(算法分析)---6(贪心算法)
- Windows核心编程-----线程池二
- 如何在开发项目里进行自我激励!
- [Linux项目实践] 物联网单板测试:OLED Dis_Menu
- Dreamweaver格式化HTML代码
- Android Tombstone/Crash的log分析和定位
- CF202 Div 1 题解
- Cocos2d-x VS2012 HelloCpp调试
- Windows核心编程-----线程池
- 我爱说英语之学美语发音
- 只能输入IP打开主页,而localhost不行解决办法
- [Linux项目实践] 物联网单板测试之任务三:OLED菜单控制LED