Dev - C++ - Multiplicacion Rusa en visual code studio

 
Vista:

Multiplicacion Rusa en visual code studio

Publicado por Marco Asencio (2 intervenciones) el 03/10/2022 05:21:39
El método de multiplicación rusa consiste en multiplicar sucesivamente por 2 el multiplicando y dividir por 2 el multiplicador hasta que el multiplicador tome el valor 1. Luego, se suman todos los multiplicandos correspondientes a los multiplicadores impares.
Dicha suma es el producto de los dos números. La siguiente tabla muestra el cálculo realizado para multiplicar 37 por 12, cuyo resultado final es 12 + 48 + 384 = 444.

Desarrolle un programa que reciba como entrada el multiplicador y el multiplicando, y entrege como resultado el producto de ambos, calculado mediante el método de multiplicación rusa.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 1
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Multiplicacion Rusa en visual code studio

Publicado por antonio (85 intervenciones) el 03/10/2022 14:38:11
Hola buenas esto esta respondido en los foros por mi, te paso el código con la explicación:

#include <iostream>
#include <stdio.h>
#include <ctype.h>
using namespace std;
//structura donde se va acumulando el resultado y las veces que se ejecuta
struct{
int acumulado;
int veces =1;
}multi;
//crear metodo multiplicacion rusa por parametro le paasremos el numero n y el m
void multiplicacionrusa(int n, int m);
//metodo main
int main(int argc, char** argv) {
//numeros a multiplicar
int n = 31;
int m = 27;
//llamamos al metodo multiplicacion rusa
multiplicacionrusa(n,m);
//mostramos el acumulado y las veces que se ha ejecutado
cout<<"El resultado es: "<<multi.acumulado<<"\n";
cout<<"El numero de veces es: "<<multi.veces<<"\n";


}
//programamos el metodo multiplicasion rusa
void multiplicacionrusa(int n,int m){
//mostrar primera linea tabla
cout<<"N M Acumulado\n";
//mientras m es 0 hacer este bucle
while(m>0){
//mostrarmos valor n actual
cout<<n;
//si el valor m es impar se acumulara el valor de n
if(m%2==1){
//acumular valor de n actual en el acumulado de la estructura
multi.acumulado = multi.acumulado+n;
//Mostrar * si m es impar
cout<<"*";
}
//mostrar m actual y el acumulado de la estructura
cout<<" "<<m<<" "<<multi.acumulado<<"\n";
//sumar 1 a las veces ejecutado
multi.veces = multi.veces+1;
//actualizar n y m actuales
n=n*2;
m=m/2;

}
//hacer la ultima pasada de la tabla es decir la ultima vez cuando m es 0
multi.veces = multi.veces+1;
cout<<n<<" "<<m<<"\n";
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Multiplicacion Rusa en visual code studio

Publicado por Marco Asencio (2 intervenciones) el 03/10/2022 15:14:03
Y ese codigo es para el visual code studio ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 1
Ha aumentado su posición en 3 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Multiplicacion Rusa en visual code studio

Publicado por antonio (85 intervenciones) el 03/10/2022 15:23:59
Yo estoy utilizando visual studio code
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar