首页 > 其他分享 >高精度乘法

高精度乘法

时间:2022-11-30 20:55:43浏览次数:41  
标签:高精度 int back ++ mul -- 乘法 size

给定两个非负整数,请你计算它们的值。

#include <iostream>
#include <vector>
using namespace std;
vector<int> a, b, c;

void mul () {
    int m = a.size(), n = b.size();
    c = vector<int> (m + n);
    for (int i = 0; i < a.size(); i++) {
        for (int j = 0; j < b.size(); j++) {
            c[i + j] += a[i] * b[j];
        }
    }
    
    for (int i = 0, t = 0; i < c.size(); i++) {
        t += c[i];
        c[i] = t % 10;
        t /= 10;
    }
    
    while (c.size() > 1 && c.back() == 0) c.pop_back();
}

int main() {
    string x, y;
    cin >> x >> y;
    
    for (int i = x.size() - 1; i >= 0; i--) a.push_back(x[i] - '0');
    for (int i = y.size() - 1; i >= 0; i--) b.push_back(y[i] - '0');
    
    mul();
    
    for (int i = c.size() - 1; i >= 0; i--) cout << c[i];
    return 0;
}

  

标签:高精度,int,back,++,mul,--,乘法,size
From: https://www.cnblogs.com/leetothemoon/p/16939702.html

相关文章

  • python打印99乘法表
    #使用while嵌套循环打印99乘法表#外层循环表示行i=1whilei<=9:j=1whilej<=i:#\t表示对其,end=""表示不换行print(f"{j}*{i}={i*j}\t"......
  • 二进制数的高精度运算
        我们知道,一个int型整数一般用32位二进制数存储,所表示的最大整数值为231-1,对应1个10位的十进制整数。因此,一个更大的整数可能需要更多的二进制位来存储,在处理......
  • 高精度减法
    高精度减法模板https://www.acwing.com/problem/content/794/减法注意要点:对于t=A[i]-B[i]-t;可以拆为t=A[i]-t如果B[i]合法,再t-=B[i]这么两步来做相减......
  • 高精度乘法模板(大*大)
    高精度乘法模板(大*大)#include<bits/stdc++.h>usingnamespacestd;vector<int>mul(vector<int>&A,vector<int>&B){ vector<int>C(A.size()+B.size()+7,......
  • 大整数的乘法
    大整数的乘法(这里主要讨论的是两个较大的数相乘的效率问题,实际上并不是真正意义上的大数相乘。在java中有个BigInteger类已经可以储存大数,并提供了大数相乘的方法了。)【分析......
  • 【白话模型量化系列一】矩阵乘法量化
    模型量化是模型加速方向一个很重要的方法,主要思想就是用int8数据格式来存储和进行计算。这样做有两点好处:可以减小模型存储的体积。原本float32存储需要4个字节,现在int8存储......
  • 补码4×4阵列乘法器设计
    视频讲解:https://www.bilibili.com/video/BV1ye4y1H7Ao/一、简述乘法运算在全部算数运算中大约占据三分之一,因此采用高速乘法部件,无论从速度上还是效率上,都十分必要。本......
  • 高精度加法
    高精度加法模板高精度加法模板#include<bits/stdc++.h>usingnamespacestd;vector<int>add(vector<int>&A,vector<int>&B){ if(A.size()<B.size())return......
  • mul乘法指令
    assumecs:code,ss:stackstacksegmentdb16dup(0)stackendscodesegments:moval,5movbl,3ret;returntoblockclodebeh......
  • 九九乘法表
    #include<iostream>usingnamespacestd;intmain(intargc,char**argv){ for(inti=1;i<=9;i++){ for(intj=1;j<=i;j++){ cout<<j<<"*"<<i<<"="<<j*i<<"";......