目录
原题链接:793-简单-高精度减法
前言
算法是考研和实习找工作进大厂的必备工具,为了23考研以及日后进大厂,开始学习算法!
作者简介
大家好,我是977,一个正在慢慢进步的程序猿小白,很高兴能在这里遇见大家,每天一点点成长,一起早日成为大佬!!!
算法基础课共106题
这是我的第9/106题
题目描述
给定两个非负整数(不含前导 0) A 和 B,请你计算 A×B 的值。
输入格式
共两行,第一行包含整数 A,第二行包含整数 B。
输出格式
共一行,包含 A×B 的值。
数据范围
1≤A的长度≤100000,
0≤B≤10000
输入样例
2
3
输入样例
6
思路解析:
算法:
时间复杂度:O(nlog(n))
解题思路:
#include<iostream>
#include<vector>
using namespace std;
vector<int> mul(vector<int> &A,int b)
{
int t=0;
vector<int> C;
for(int i=0;i<A.size();i++)
{
t+=A[i]*b;
C.push_back(t%10);
t/=10;
}
while(t)
{
C.push_back(t%10);
t/=10;
}
return C;
}
int main()
{
string a;
int b;
cin>>a>>b;
vector<int> A,C;
for(int i=a.size()-1;i>=0;i--)
A.push_back(a[i]-'0');
if(b) C=mul(A,b);
else C.push_back(0);
for(int i=C.size()-1;i>=0;i--)
printf("%d",C[i]);
return 0;
}
结语
学习贵在坚持,Acwing算法基础课,每日一题
期待各位的关注和监督