Problema con programa 1 y 0.

Iniciado por ltaldorayne, 16 Noviembre 2012, 00:01 AM

0 Miembros y 1 Visitante están viendo este tema.

ltaldorayne

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.

avesudra

#1
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:
Código (asm) [Seleccionar]
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!
 
Regístrate en