J'ai un projet (pour l'école) et je ne peux absolument pas utiliser les bibliothèques externes, donc je ne peux pas utiliser une grande bibliothèque de nombres et j'ai besoin d'obtenir le produit de 2 (très) grands nombres. J'ai donc pensé que j'écrirais mon propre code, mais je n'arrive pas à obtenir des multiplications à un chiffre.Calcul de produits de grands nombres en utilisant des tableaux?
Comment je l'ai fait jusqu'à présent, c'est que j'ai un tableau de caractères 'a'. Et Ill multiplie chacun de ses chiffres avec l'autre nombre (puisque aucune multiplication ne peut aller au-delà de 81 soit 9 * 9). Mais je n'arrive pas à comprendre comment Ill multiplier deux tableaux les uns avec les autres.
Comme dans
int a[] = {1,2,3};
int b[] = {4,5,6};
int r[200]; // To store result of 123x456. After processing should have value 56088
Heres mon code jusqu'à présent ...
#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
}
J'ai aussi trouvé un programme similaire here qui calcule factorielles de très grands nombres. Mais je ne peux pas sembler comprendre le code assez pour le changer à mes besoins. Désolé, la question est un peu incomplète.
Merci.
Comment voulez-vous multiplier 2 très grandes (20 chiffres, par exemple) chiffres à la main ayant seul stylo et un papier (comme cela est enseigné à l'école primaire)? Vous pouvez appliquer la même idée ici. –