建手机网站报价,定州网页设计,煎蛋网 wordpress,wordpress后台添加字段文章目录 793.高精度乘法题目描述高精度乘法 793.高精度乘法
题目描述
给定两个正整数A和B#xff0c;请你计算A * B的值。
输入格式 共两行#xff0c;第一行包含整数A#xff0c;第二行包含整数B。
输出格式 共一行#xff0c;包含A * B的值。
数据范围 1≤A的长度≤… 文章目录 793.高精度乘法题目描述高精度乘法 793.高精度乘法
题目描述
给定两个正整数A和B请你计算A * B的值。
输入格式 共两行第一行包含整数A第二行包含整数B。
输出格式 共一行包含A * B的值。
数据范围 1≤A的长度≤100000, 0≤B≤10000 输入样例
2
3输出样例
6高精度乘法
// 包含C STL库的头文件
#includebits/stdc.h
using namespace std;// mul函数用于执行高精度乘法
vectorint mul(vectorint a,int b){vectorint c; // 存储乘法结果的动态数组int t 0; // 用于暂存中间结果和进位for(int i 0; i a.size() || t; i){ // 遍历大整数的每一位或直到进位为0if(i a.size()) t a[i] * b; // 如果当前位有效则将其与b相乘并加到t上c.push_back(t % 10); // 将t的个位数作为结果的一部分t / 10; // 计算进位准备加到下一位}return c; // 返回乘法结果
}// main函数是程序的入口点
int main(){int b; // 存储整数Bstring a; // 存储大整数A的字符串表示cin a b; // 从标准输入读取大整数A和整数Bvectorint A; // 存储大整数A的每一位数字for(int i a.size() - 1; i 0; i--) // 从字符串的末尾开始即大整数的个位A.push_back(a[i] - 0); // 将字符转换为整数并添加到A数组的末尾auto c mul(A, b); // 调用mul函数计算A和B的乘积结果存储在c中for(int i c.size() - 1; i 0; i--) // 从结果的最高位开始输出cout c[i];return 0; // 程序结束}该程序执行以下步骤
读取字符串形式的大整数A和整数B。将大整数A反转并转换成单个数字存储在一个vectorint里面。调用mul函数计算乘积。mul函数通过模拟小学数学中的乘法过程逐位计算A和B的乘积。最后将计算得到的结果vector反转输出即从最高位到最低位的顺序。
注意代码没有处理结果前导零的情况因为在乘法中除非乘数是0否则不会出现前导零。此外由于输入保证B为非负数且A为正整数所以结果也总是非负的。