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.
Primeramente este número 011100011000111100000 , no lo vas a meter en la vida con un int , son 20 cifras , y tienes que tener en cuenta que tu los lees en decimal y que un int solo admite 4 bytes , o sea solo este rango :
signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
Además de eso para lo de multiplicarlos:
Inicializamos variable contador a 0
Inicializamos variable resultado a 1
Repetir mientras no se acaben los 1
{
Contamos los 1's
Los multiplicamos por la variable resultado(en la variable) y se lo asignamos a la variable resultado.
}
Mostramos en pantalla la variable resultado.
PD: En teoria deberías trabajar con cadenas de carácteres.
¡Un saludo!