gpt4 book ai didi

c++ - 使用数组计算大量产品?

转载 作者:行者123 更新时间:2023-11-30 02:53:04 25 4
gpt4 key购买 nike

我有一个项目(用于学校),我绝对不能使用任何外部库,因此不能使用任何大数库,我需要获得 2 个(非常)大数的乘积。所以我想我实际上会为它编写自己的代码,但我似乎无法通过个位数乘法。

到目前为止我是如何做到的是我有一个字符数组“a”。我会将它的每个数字与另一个数字相乘(因为乘法不能超过 81,即 9*9)。但我似乎无法弄清楚如何将两个数组相互相乘。

如,

int a[] = {1,2,3};
int b[] = {4,5,6};

int r[200]; // To store result of 123x456. After processing should have value 56088

到目前为止,这是我的代码...

#include <iostream>
using namespace std;

void reverseArray(int array[], int n)
{
int t;
for(int i=0;i<n/2;i++)
{
t = array[i];
array[i] = array[n-i-1];
array[n-i-1] = t;
}
}

int main()
{
int A[] = {1,2,6,6,7,7,8,8,8,8,8,8,8,8,8,8};
int s = sizeof(A)/sizeof(int);
int n = s-1;

int R[50];


int x = 2;

int rem = 0;

for(int i=0; i<s; i++)
{
R[i] = (A[n-i] * x) % 10;
R[i] += (rem != 0) ? rem:0;
rem = (A[n-i] * x) / 10;
}

reverseArray(R, s);

for(int i=0; i<s; i++) cout<<R[i]; // Gives 2533557777777776

}

我还找到了一个类似的程序 here,它可以计算非常大的数的阶乘。但我似乎无法充分理解代码以根据我的需要对其进行更改。

抱歉,如果问题有点粗略。

谢谢。

最佳答案

只需做与现在相同的事情,但对于第二个数组中的每个数字 - 换句话说,使用 B[j] 代替 x,其中 j 是数组 B 中所有数字的循环。

关于c++ - 使用数组计算大量产品?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18357925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com