高精度进阶(蒟蒻题解轻喷)

之前我们讲了高精度加减
今天我们来写乘除
知识点与上次相同,直接放题解

  1. A * B 问题
    题目ID:3282必做题100分
    最新提交:0 分
    历史最高:0 分

    时间限制: 200ms
    空间限制: 32768kB

题目描述
时间:0.2s 空间:32M

题目描述:

给你两个十进制数,第一个数的数位最长有1000,第二个数在10^8以内。

输入格式:

第一行输入一个整数

第二行输入一个整数

输出格式:

输出一个整数

样例输入:

12312312312142343254354354
233

样例输出:

2868768768729165978264564482

约定:

A,BA,B都是非负整数

提示:
\color{yellow}代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s1,int b;
	cin >> s1 ;
	cin >> b;
	int a[1005]={0};
	int c[1005]={0};
	//字符串s1倒序存入数组,这时我们要定义len
	int len1=s1.size();
	int len2=len1+20;
	for(int i = 0 ; i < len1; i++)
	{
		a[len1-i] = s1[i] - '0';
	} 
	for(int i = 0 ; i < len2; i++)
	{
		c[i] = a[i]*b;
	}
	//进位 
	for(int i = 1; i <= len2 ; i++)
	{
		if(c[i] > 9)
		{
			c[i+1] = c[i+1] + (c[i]/10);
			c[i] = c[i] %10;
		}
	}
	//去0
	while(c[len2]==0 &&len2 > 1)
	{
		len2--;
	}
	for(int i = len2; i >= 1; i--)
	{
		cout << c[i];
	} 
	return 0;
}

蒟蒻到底是啥意思 看到很多人都说自己是蒟蒻 :exploding_head:

蒟蒻(巨弱)

可是你也不像是蒟蒻啊

我不是谁是?我才上到基础算法1

我是