题目:给出两个不超过1000位的十六进制数a,b。
求a∗b的值
输入格式:
输入共两行,两个十六进制的数
输出格式:
输出一行,表示a∗b
输入样例:
在这里给出一组输入。例如:
1BF52
1D4B42
输出样例:
在这里给出相应的输出。例如:
332FCA5924
思路:本题主要考察高精度乘法的运算,和十进制高精度乘法差不多,只是把进位条件更改了,思路同样先分别反向存入数字(把十六进制数字字符转化为十进制数字),然后进行乘法运算,再进行进位,最后就可以反向输出了~
解题代码:
#include <bits/stdc++.h>
using namespace std;
int arr1[10000] = {}, arr2[10000] = {}, arr3[10000] = {};
int mnum = 0, digit = 0, i = 0;
int main()
{
string sta, stb;
cin >> sta >> stb;
for (i = 0;i < sta.size();i++) //数字分别反向存取在数组中
{
if (sta[sta.size() - 1 - i] >= 'A' &&