标签:转化 har print std space 大数 temp str 超过
方法:和加减法类似,同样是用字符串数组存储,再转化为整形数组
步骤:1、反向存储(反转),转化为整形
2、乘积进位
3、逆序输出
#include<bits/stdc++.h> using namespace std; char a[1005]; char b[1005]; int aa[1005]; int bb[1005]; int c[1005]; int main() { while(scanf("%s%s",a,b)) { memset(aa,0,sizeof(aa)); memset(bb,0,sizeof(bb)); memset(c,0,sizeof(c)); int lena = strlen(a); int lenb = strlen(b); for(int i = lena - 1 ; i >= 0 ; i--) aa[lena - i - 1] = a[i] - ‘0‘; for(int i = lenb - 1 ; i >= 0 ; i--) bb[lenb - i - 1] = b[i] - ‘0‘; for(int i = 0 ; i < lena ; i++) { for(int j = 0 ; j < lenb ; j++) { c[i+j] += aa[i]*bb[j]; } } ///所乘得的结果的位数不会超过两个的和 ///99 * 99 = 9801(4位) 999 * 999 = 998001(6位) int lenc = lena + lenb; int jinwei = 0; for(int i = 0 ; i < lenc ; i++) { int temp = c[i] + jinwei; jinwei = temp / 10; c[i] = temp % 10; } while(c[lenc - 1]==0&&lenc>1) lenc--; for(int i = lenc - 1 ; i >= 0 ; i--) { printf("%d",c[i]); } printf("\n"); printf("-----------\n"); } return 0; }
代码:
标签:转化 har print std space 大数 temp str 超过
原文地址:http://www.cnblogs.com/hhkobeww/p/7700248.html