programa en C ++ para multiplicar dos números sin utilizar operador de multiplicación

Aquí, vamos a aprender a multiplicar dos números sin utilizar operador de multiplicación utilizando el algoritmo campesino ruso?

El problema es que tenemos dos números enteros y encontrar la multiplicación de ellas sin necesidad de utilizar el operador de multiplicación . Este problema se puede resolver utilizando el algoritmo campesino ruso. Suponga que los dos números dados son m y n . Inicializar mul con 0 y repita los siguientes pasos mientras n es mayor que cero:

  1. Añadir m a mul , si n es impar
  2. class el valor de m y la mitad del valor de n .

Aquí utilizamos propiedades de (desplazamiento a la derecha) los operadores class duplicando el valor de m y class dividiendo el valor de ‘ n por 2.

Referencia: campesino ruso multiplicación

programa en C ++ para implementar campesino ruso algoritmo

#include <iostream> 
using namespace std;
int Multiply(int m, int n)
{
int mul=0;
while (n > 0)
{
// if n is odd
if (n & 1) mul = mul + m;
// Double 'm' and halve 'n'
m = m << 1;
n = n >> 1;
}
return mul;
}
int main() {
int ans;
ans=Multiply(2,3);
cout<<"Multiplication of 2 and 3 = "<<ans<<endl;
ans=Multiply(10,10);
cout<<"Multiplication of 10 and 10 = "<<ans<<endl;
return 0;
}

salida

Multiplication of 2 and 3 = 6
Multiplication of 10 and 10 = 100


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *