大数加法、乘法
2011-09-26 15:14
281 查看
#include<iostream> #include<stdio.h> #include<string.h> #define Len 3000//大数的长度 using namespace std; int Input (char n[])//将大数读入的函数 { char s[Len]; int i,l; for(i=0; i<Len; i++) n[i]=0; if(scanf("%s",s)<1) return -1; l= strlen(s); for(i=0; i<l; i++) //将输入的大数逆置 n[i]=s[l-i-1]-'0'; } int Print (char n[]) { int i; for(i=Len-1; i>0; i--) if(n[i]!=0) break; for(; i>=0; i--) printf("%d",n[i]); printf("\n"); } void Add (char a[],char b[],char c[])//大数加法 { int i=0; for(i=0; i<Len; i++) c[i]=a[i]+b[i]; for(i=0; i<Len; i++) //处理进位 { if(c[i]>=10) { c[i+1]+=c[i]/10; c[i]=c[i]%10; } } } void Mul(char a[],char b[],char c[])//大数乘法 { int i,j; int alen=strlen(a),blen=strlen(b); for(i=0; i<Len; i++) c[i]=0; for(i=0; i<alen; i++) for(j=0; j<blen; j++) //处理进位 { c[i+j]+=a[i]*b[j]; if(c[i+j]>=10) { c[i+j+1]+=c[i+j]/10; c[i+j]%=10; } } } int main() { char a[Len],b[Len],c[Len]; Input(a); Input(b); Add(a,b,c); Print(c); Mul(a,b,c); Print(c); return 0; }
http://blog.sina.com.cn/s/blog_4da7d7a70100d6t6.html
/article/5066991.html
相关文章推荐
- 剑指offer编程题Java实现——面试题12相关题大数的加法、减法、乘法问题的实现
- 大数加法和乘法
- 蓝桥杯——算法提高 大数加法&大数乘法&冒泡排序
- 大数运算之加法乘法---JAVA实现
- [acm 1001] c++ 大数加法 乘法 幂
- 大数加法、大数乘法、大数减法。Swift。
- 大数加法、减法、乘法
- 大数加法与乘法
- 大数加法、减法和乘法
- 大数与小数模板(乘法,加法)
- 大数加法和大数乘法的实现
- 大数加法、减法、乘法、除法、求余、比较、乘方(代码简短(总计150)、易懂)
- Java大数模板——加法、减法、乘法、除法、开方、求余
- 大数加法乘法
- 大数加法以及大数乘法
- 单链表实现大数加法、大数减法、大数乘法、大数指数运算
- 大数的加法,减法,乘法
- 大数加法、减法、乘法、除法实现
- 大数乘法,大数加法,大数减法
- C语言数组加链表实现大数的加法乘法