高清素材网站无水印,杭州公司注册地址租赁,温州正规制作网站公司,网站建设贵吗题目描述
求两个不超过100位的非负整数的乘积。
输入
有两行#xff0c;每行是一个不超过100位的非负整数#xff0c;没有多余的前导0。
输出 一行#xff0c;相乘后的结果。
样例输入 Copy
123456789
123456789样例输出 Copy
15241578750190521
代码实现#xff1…题目描述
求两个不超过100位的非负整数的乘积。
输入
有两行每行是一个不超过100位的非负整数没有多余的前导0。
输出 一行相乘后的结果。
样例输入 Copy
123456789
123456789样例输出 Copy
15241578750190521
代码实现 #pragma GCC optimize(2)
#include bits/stdc.h
using namespace std;
//定义数字部分
#define MAXLEN 250
#define RMAXLEN 500
//定义字符串字符数组部分
string s1,s2;
int a[MAXLEN],b[MAXLEN],c[RMAXLEN],k;
int main()
{//输入两个数用字符串格式输入cins1;cins2;//识别字符串长度并进行逆序转存int len1s1.length();for(int i0;ilen1;i){a[len1-1-i]s1[i]-0;}int len2s2.length();for(int i0;ilen2;i){b[len2-1-i]s2[i]-0;}//循环计算部分for(int i0;is1.length();i){for(int j0;js2.length();j){kij;//位数逐一相乘c[k]a[i]*b[j];//处理计算中的进位问题if(c[k]10){//满足条件前一位进整除位当前位对10 modc[k1]c[k]/10;c[k]%10;}}}//处理是否进位到了c[len]位int lens1.length()s2.length()1;if(c[len]0){len;}//去除多余的前导0while(c[len-1]0len1){len--;}//逆序输出for(int ilen-1;i0;i--){coutc[i];}return 0;
}