Foros del Web » Programación para mayores de 30 ;) » Programación General »

multiplicacion Rusa en lenguaje c

Estas en el tema de multiplicacion Rusa en lenguaje c en el foro de Programación General en Foros del Web. Hola soy nueva por aca, y necesito ayuda relacionada con el lenguaje C estoy comenzando a programar en el y quiero realizar la multiplicacion Rusa, ...
  #1 (permalink)  
Antiguo 03/04/2004, 11:06
Avatar de SMART_LAKY  
Fecha de Ingreso: abril-2004
Ubicación: Guadalajara Jalisco
Mensajes: 10
Antigüedad: 20 años
Puntos: 0
multiplicacion Rusa en lenguaje c

Hola soy nueva por aca, y necesito ayuda relacionada con el lenguaje C estoy comenzando a programar en el y quiero realizar la multiplicacion Rusa, si alguien sabe cual es el codigo fuente de esta, por favor ayudeme... gracias por su atencion...
  #2 (permalink)  
Antiguo 03/04/2004, 22:06
Avatar de Blag  
Fecha de Ingreso: septiembre-2003
Ubicación: Lima
Mensajes: 68
Antigüedad: 20 años, 7 meses
Puntos: 0
Si me dices que se supone que es la multiplicación rusa, talvés pueda ayudarte.....

Blag
__________________
Alvaro Tejada Galindo
Consultor ABAP FI/HR
SinglePath's Experimental HomePage
Foro de ABAP en SoloCodigo.com
Revista "Código Latino"
  #3 (permalink)  
Antiguo 04/04/2004, 07:11
Avatar de SMART_LAKY  
Fecha de Ingreso: abril-2004
Ubicación: Guadalajara Jalisco
Mensajes: 10
Antigüedad: 20 años
Puntos: 0
HOLA QUE TAL PRIMERO QUIERO AGRADECER TU ATENCION Y PUES AQUI TE MUESTRO LO QUE TENGO QUE REALIZAR:

Diseñar un programa que multiplique dos números enteros mediante el algoritmo de la multiplicación rusa. El algoritmo de la multiplicación rusa multiplica por 2 el multiplicando y divide por 2 el multiplicador hasta que el multiplicador toma el valor de 1. Después suma todos los multiplicadores correspondientes a los multiplicadores impares. Dicha suma resulta ser el producto de los dos números.

Ejemplo:
37 * 12 = 444 (donde: ==> multiplicador = 37, ===> multiplicando = 12)

37 12
18 24
09 48
04 96
02 192
01 384 12 + 48 + 384 = 444
  #4 (permalink)  
Antiguo 04/04/2004, 09:00
Avatar de Blag  
Fecha de Ingreso: septiembre-2003
Ubicación: Lima
Mensajes: 68
Antigüedad: 20 años, 7 meses
Puntos: 0
Ok.....Ya te entendí, pero.......en la última parte,

Cita:
Después suma todos los multiplicadores correspondientes a los multiplicadores impares. Dicha suma resulta ser el producto de los dos números.
Tu estas sumando estos número para obtener la respuesta:


Cita:
12 + 48 + 384 = 444
Y pues.......los 3 son pares....y no le veo mucha lógica a como los tomas, ya que tomas el 1, el 3 y el 5.

Blag
__________________
Alvaro Tejada Galindo
Consultor ABAP FI/HR
SinglePath's Experimental HomePage
Foro de ABAP en SoloCodigo.com
Revista "Código Latino"
  #5 (permalink)  
Antiguo 04/04/2004, 09:13
Avatar de SMART_LAKY  
Fecha de Ingreso: abril-2004
Ubicación: Guadalajara Jalisco
Mensajes: 10
Antigüedad: 20 años
Puntos: 0
ESPERO TE SIRVA

OK MIRA COMO TE LO EXPLICO LOS NUMEROS QUE SUME SON PARES SIERTO, PERO LOS NUMEROS QUE SON IMPARES SON LOS DE LA IZQUIERDA
EJEMPLO TENGO ESTOS NUMEROS
37 12
18 24
09 48
04 96
02 192
01 384
12 + 48 + 384 = 444

LOS NUMEROS QUE ESTAN A LA IZQUIERDA SON DE DONDE TOMARE LOS IMPARES, EJEMPLO ESTAN EL 37, 09, Y EL 01, CORRECTO, BIEN ENTONCES UNA VES QUE TIENES LOS IMPARES TOMAS EL VALOR QUE SE ENCUENTRA A LA DERECHA PARA SUMAR DICHOS VALORES; EJEMPLO EL NUM IMPAR 37 TIENE COMO VALOR EL 12, EL NUM 09 TIENE COMO VALOR EL 48 Y EL NUM IMPAR 01 TIENE COMO VALOR EL 384 SI SUMAS ESTOS VALORES TEDA EL RESULTADO FINAL QUE SERIA 12 + 48 + 384 = 444. ESPERO ME HALLAS ENTENDIDO
  #6 (permalink)  
Antiguo 04/04/2004, 09:28
Avatar de Blag  
Fecha de Ingreso: septiembre-2003
Ubicación: Lima
Mensajes: 68
Antigüedad: 20 años, 7 meses
Puntos: 0
Sip, ya te entendí

Y aquí está el código, no es nada complicado de hacer:

Código PHP:
#include <stdio.h>
#include <conio.h>

typedef unsigned int natural;   //Definimos un tipo de entero

natural mul(natural anatural b)  //Creamos nuestro metodo
{
natural c 0;
while (
!= 0) {   //Mientras el primer numero sea diferente de 0
if (!= 0)    //Si el residuo del primer numero entre 2, es
           //diferente de 0
b;         //Entonces, sumamos el valor del segundo numero
           //a nuestra variable auxiliar.
2;         //El primer numero lo dividimos entre 2
2;         //El segundo numero lo multiplicamos por 2
}
return 
c;          //Cuando el primer numero sea 0, devolvemos el valor
           //de nuestra variable auxiliar.
}

int main()
{
natural a,b,c;   //Declaramos 3 variables
printf("Ingresa el primer n£mero: ");
scanf("%i",&a);  //Leemos el primer numero
printf("Ingresa el segundo n£mero: ");
scanf("%i",&b);  //Leemos el segundo numero
mul(a,b);    //Llamamos a nuestro metodo, asignando el resultado
         //a nuestra variable auxiliar
printf("El Resultado es: ");
printf("%i",c);  //Imprimimos el resultado
getch();         //Copiamos la pantalla....se puede reemplazar por
         //return 0.

Cualquier cosa me avisas.....

Blag
__________________
Alvaro Tejada Galindo
Consultor ABAP FI/HR
SinglePath's Experimental HomePage
Foro de ABAP en SoloCodigo.com
Revista "Código Latino"
  #7 (permalink)  
Antiguo 01/04/2008, 17:04
 
Fecha de Ingreso: abril-2008
Mensajes: 4
Antigüedad: 16 años
Puntos: 1
Re: multiplicacion Rusa en lenguaje c

hola como me gustaria saber si me podrias ayudar con un problema en lenguaje c es un juego conocido como el dilema dilema del prisionero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:37.