Un algorithme non traditionnel pour multiplier deux entiers positifs
Supposons que n et m sont deux entiers positifs, calculez n*m et utilisez maintenant l'entrée de n comme mesure de la taille de l'instance.
En supposant que n est un nombre pair, une instance avec la moitié de la taille d'origine doit traiter n/2, n*m=n/2 * 2m
En supposant que n est un nombre impair, il vous suffit de faire un simple ajustement à la formule, n*m=(n-1)/2 * 2m
Et utilisez 1*m=m comme condition de terminaison.
Si nous écrivons un exemple, nous constaterons que lorsque toutes les n valeurs actuelles sont impaires, il suffit d'ajouter les m valeurs correspondantes pour obtenir le produit de n*m.
Par exemple : 50*65=25*130=12*260 (+130)=6*520=3*1040=1*2080===2080+1040+130=3250
Commençons l'implémentation du code :
#inclure <iostream><br>
en utilisant l'espace de noms std ;</iostream>
int main()
{
int n,m,mul=0;
cin>>n>>m;
pour(int i=n>>1;i>=1;i=i>>1)
{
m=m
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!