大数加法 大数乘法
发布时间:2021-03-15 11:47:04 所属栏目:大数据 来源:网络整理
导读:#includeiostream #includestdio.h #includestring.h #define MAXLEN 300 //大数的长度 using namespace std ; int Input( char n[]) //将大数读入的函数 { char s[MAXLEN]; int i,l; for (i = 0 ; i MAXLEN; i++) n[i] = 0 ; if ( scanf ( "%s" ,s) 1 ) ret
#include<iostream> #include<stdio.h> #include<string.h> #define MAXLEN 300//大数的长度 using namespace std; int Input(char n[])//将大数读入的函数 { char s[MAXLEN]; int i,l; for (i = 0; i < MAXLEN; 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 = MAXLEN - 1; i > 0; i--) if (n[i] != 0) break; for (; i >= 0; i--) printf("%d",n[i]); printf("n"); return 0; } void Add(char a[],char b[],char c[])//大数加法 { int i = 0; for (i = 0; i < MAXLEN; i++) c[i] = a[i] + b[i]; for (i = 0; i < MAXLEN; i++) //处理进位 { if (c[i] >= 10) { c[i + 1] += c[i] / 10; c[i] = c[i] % 10; } } } void Mul(char a[],char c[])//大数乘法 { int i,j; int alen = strlen(a),blen = strlen(b); for (i = 0; i < MAXLEN; 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[MAXLEN],b[MAXLEN],c[MAXLEN]; Input(a); Input(b); Add(a,b,c); Print(c); Mul(a,c); Print(c); getchar(); getchar(); return 0; } (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |