SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: ltaldorayne88 en Jueves 15 de Noviembre de 2012, 23:54

Título: Problema con programa 1 y 0.
Publicado por: ltaldorayne88 en Jueves 15 de Noviembre de 2012, 23:54
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.
Título: Re:Problema con programa 1 y 0.
Publicado por: cotolon en Viernes 16 de Noviembre de 2012, 01:37
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]