算法AcWing 793. 高精度乘法

Posted karshey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法AcWing 793. 高精度乘法相关的知识,希望对你有一定的参考价值。

算法概述

  1. AxB:A用string输入,B用int输入。将A存入int[];
  2. 设一个t存进位情况。
  3. 当A.size()已经用完了,但t还剩,就继续进行:t%10存入C,t/=10;
  4. 记得删除前导0;

代码

#include<iostream>
#include<vector>
using namespace std;

const int N=1e6+10; 
vector<int>A,C;

void mul(vector<int>&A,int b)
{
	int t=0;
	for(int i=0;i<A.size()||t;i++)
	{
		if(i<A.size()) t+=A[i]*b;
		C.push_back(t%10);
		t/=10;		
	}
	
	while(C.size()>1&&C.back()==0) C.pop_back();
}

int main()
{
	string a;
	int b;
	cin>>a>>b;
	
	for(int i=a.size()-1;i>=0;i--) A.push_back(a[i]-'0');
	
	mul(A,b);
	
	for(int i=C.size()-1;i>=0;i--) printf("%d",C[i]);
	return 0;
}

以上是关于算法AcWing 793. 高精度乘法的主要内容,如果未能解决你的问题,请参考以下文章

AcWing 793. 高精度乘法

AcWing 793.高精度乘法

高精度乘除法模板(AcWing.793 794)

AcWing 791. 高精度加法 解题记录

算法AcWing 791. 高精度加法

64位整数乘法讲解-And-AcWing-90. 64位整数乘法-《算法竞赛进阶指南》