c_cpp 将大数字乘以字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 将大数字乘以字符串相关的知识,希望对你有一定的参考价值。

// multiplication of large numbers as strings
#include <bits/stdc++.h>
using namespace std;
void multiply(string s1,string s2){
	int n1 = s1.size();
	int n2 = s2.size();
	int z1,z2;
	int carray;
	int in1 = 0;
	int in2 = 0;
	vector<int> v(n1 + n2,0);
	for(int i = n1 - 1;i >= 0;i--){
		z1 = s1[i] - '0';
		carray  = 0;
		in2 = 0;
		for(int j = n2 - 1;j >= 0;j--){
			z2 = s2[j] - '0';
			int sum = z1*z2 + v[in1 + in2] + carray;
		
			v[in1 + in2] = sum%10;
			carray = sum/10;
			
			in2++;
		}
	if (carray > 0){ 
            v[in1 + in2] += carray;
	}
		in1++;
	}
	int i = v.size() - 1;
	while(v[i] == 0){
		i--;
	}
	for(int j = i;j >= 0;j--){
		cout << v[j];
	}
	cout << endl;
	
}
int main() {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */
    int n;
    
    string s1;
    string s2;
    cin >> s1 >> s2;
    multiply(s1,s2);
    return 0;
}

以上是关于c_cpp 将大数字乘以字符串的主要内容,如果未能解决你的问题,请参考以下文章

将大数字(或字符串)压缩为小值

c_cpp 乘以一位数

将大查询数据导出到云存储,整数字段更改为字符串格式,但浮点格式保持为数字格式

Python3基础 print 中字符串乘以数字,重复输出多次

将大整数压缩成尽可能小的字符串

c_cpp 数字和字符串值