SoloCodigo
Programación General => C/C++ => Mensaje iniciado 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.
-
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]