• Viernes 19 de Abril de 2024, 09:55

Autor Tema:  Problema con programa 1 y 0.  (Leído 1467 veces)

ltaldorayne88

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Problema con programa 1 y 0.
« en: Jueves 15 de Noviembre de 2012, 23:54 »
0
Tengo un problema al crear un programa que lea una serie de 1 y 0 y devuelva la siguiente solucion:

Por ejemplo si introducimos 011100011000111100000:
el programa debería devolver: 3*2*4:24
Es decir, que lea los grupos de 1 y los sume, despreciando los 0.

he comenzado con esto:

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
int num, incrementar=0;
double resto;

do{
num=num/10;
resto=num%10;

if(resto==1){
incrementar++;
}
.
.
.
}

Pero no se como hacer que se guarden los números y después se multipliquen. Gracias.

cotolon

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re:Problema con programa 1 y 0.
« Respuesta #1 en: Viernes 16 de Noviembre de 2012, 01:37 »
0
Si debes mostrar por pantalla " 3 * 2 * 4"
podrías contar cuantos grupos de 1 hay

En este caso hay 3, entonces crearías un Vector[3]. Y cada elemento sería por ej Vector[0] = 3 Vector[1] = 2 Vector[2] = 4. Y finalmente los multiplicarias

(Claro que si tomas lo que ingresaste como número, se guardaría sin los útimos ceros)

Lo que ingresas:  011100011000111100000
Lo que guarda: 0111000110001111

Lo otro es usar un booleano, y un indice. por ejemplo cuando indice = 0

Cuando encuentras el primer 1  (mediante el resto)  Vector[0] +=1;  y  booleano = true;
y luego entramos a un Mientras booleano = true
le suma al Vector[0] +=1; por cada uno, si encuentra un 0, entonces booleano = false;
termina el ciclo Mientras
y se le suma uno a indice, porque ahora tocara ver Vector[1]