C++中的大数乘的实现
代码
来源:面试常考 大数加减乘除
#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector<int> mult(string s1, string s2)
{
int l1 = s1.size();
int l2 = s2.size();
vector<int> res(l1 + l2, 0);
for (int i = 0; i < l1; i++)
{
for (int j = 0; j < l2; j++)
{
res[i + j + 1] += ((s1[i] - '0')*(s2[j] - '0'));
}
}
int x = l1 + l2 - 1;
for (int i = x; i > 0; i--)
{
res[i - 1] += res[i] / 10;
res[i] %= 10;
}
return res;
}
int main()
{
string a = "99999";
string b = "99999";
vector<int> ans = mult(a, b);
int i = 0;
//去除前面的0
while (i < ans.size() && ans[i] == 0)
{
i++;
}
for (; i < ans.size(); i++)
{
cout << ans[i];
}
cout << endl;
system("pause");
return 0;
}
C++中的大数乘的实现的更多相关文章
- c语言经典算法——查找一个整数数组中第二大数
题目: 实现一个函数,查找一个整数数组中第二大数. 算法思想: 设置两个变量max1和max2,用来保存最大数和第二大数,然后将数组剩余的数依次与这两个数比较,如果这个数a比max1大,则先将max1 ...
- Java中的大数处理类BigInteger和BigDecimar浅析
这两个类位于java.math包内,要使用它们必须在类前面引用该包:import java.math.BigInteger;和import java.math.BigDecimal; BigInteg ...
- OpenSSL中的大数接口与基于其的自用RSA加密接口设计
本文记录了初次接触OpenSSL中的大数模块,重温了RSA加密流程,使用OpenSSL的接口包装成自用RSA加密接口,并且利用自己的接口演示了Alice与Bob通过RSA加密进行通讯的一个示例. 概览 ...
- java求两个数中的大数
java求两个数中的大数 java中的max函数在Math中 应用如下: int a=34: int b=45: int ans=Math.max(34,45); 那么ans的值就是45.
- JAVA中关于大数问题
这里只是java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目. 一.样例:java中的输出a+b import java.io ...
- java中的大数BigInteger
compareTo比较大小 equals比较是否相等 ,不能用== while(cin.hasNext())//等价于!=EOF n=cin.nextBigInteger();//读入一个大整数 Sy ...
- c语言中函数的简单介绍
c语言中函数的介绍: 函数,简单的说就是代码的打包.存放在一个地方,当需要的时候调用. 函数分类: 1.无参无返回值函数 void func() 2.无参有返回值函数 int func() 3.有参 ...
- 简明解释算法中的大O符号
伯乐在线导读:2009年1月28日Arec Barrwin在StackOverflow上提问,“有没有关于大O符号(Big O notation)的简单解释?尽量别用那么正式的定义,用尽可能简单的数学 ...
- PAT 大数运算
PAT中关于大数的有B1017,A1023,A1024 (A-Advance,B-Basic) B1017 1017. A除以B (20) 本题要求计算A/B,其中A是不超过1000位的正整数,B是1 ...
随机推荐
- JAVA中常用的异常处理情况
1.java.lang.nullpointerexception程序遇上空指针 这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者 ...
- java 连接mysql 示例
import java.sql.*; public class Main { // MySQL 8.0 以下版本 - JDBC 驱动名及数据库 URL static final String JDBC ...
- 初学C#之运算符和关系表达式
㈠运算符和关系表达式 一元运算符++.-- 前加和后加区别,事例++在后如下: ; ; //结果age=19 说明age++在表达式中age的值也+1.结果sum=8,原因age++,++在后用age ...
- 题解 P4171 【[JSOI2010]满汉全席】
什么,tarjan?那是什么? 码量太大,我选择放弃 为什么不用dfs写2-sat呢?他会伤心的说 这题2-sat的过程大佬们已经讲得非常清楚了,我就略微提一下,主要讲dfs的原理 2_sat原理 我 ...
- Mariadb-10.2.25 多实例
Mariadb-10.2.25 多实例 定义目录 mkdir -p /mysql/{3306,3307,3308}/{bin,data,etc,log,pid,socket} 生成数据库文件 /app ...
- Java 开发者必须了解的 16 个Java 顶级开源项目!
本文已经收录自笔者开源的 JavaGuide: https://github.com/Snailclimb/JavaGuide ([Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核 ...
- 如何在C语言 C++里面调用 DOS命令
C里面调用可以用[system("命令")]这样的形式. 但需要include <stdlib.h> 例子如下: #include <stdio.h> #i ...
- ccf201403-3 记录一个神tmwa了的代码 莫非我没看懂题。。。
#include <string.h> #include<cstdio> #include<stdio.h> #include <iostream> # ...
- Tensorflow学习教程------实现lenet并且进行二分类
#coding:utf-8 import tensorflow as tf import os def read_and_decode(filename): #根据文件名生成一个队列 filename ...
- 2019牛客暑期多校训练营(第五场)B.generator 1
传送门:https://ac.nowcoder.com/acm/contest/885/B 题意:给出,由公式 求出 思路:没学过矩阵快速幂.题解说是矩阵快速幂,之后就学了一遍.(可以先去学一下矩阵快 ...