Autor
|
Tema: Sumar y multiplicar una serie de números (Leído 2,979 veces)
|
SebaC
Desconectado
Mensajes: 16
|
Debo realizar el siguiente programa que reciba como entrada una serie de 1 y 0 este debe sumar los grupos de 1 y luego multiplicar cada uno Por ejemplo: 011110011100011 Salida: 4*3*2= 24 Hasta ahora llevo esto #include <iostream> using namespace std; int main() { int num, cant=0; int resto; do{ num=num/10; resto=num%10; if(resto==1) cant++; } while(num) return 0; }
El problema es que no se como multiplicarlos
|
|
|
En línea
|
|
|
|
class_OpenGL
Desconectado
Mensajes: 437
Si usas Direct3D, no eres mi amigo :P
|
Te pide que introduzcas una serie de 1s y 0s, pero tu introduces un entero. ¿Cuál es la diferencia? Que si tienes un 0 a la izquierda no lo vas a leer. Así que lo que tienes que hacer es leer una cadena de caracteres e iterar por toda ella verificando que posiciones son '1' y qué posiciones son '0'. Ahora solo queda aplicar las reglas propuestas
|
|
|
En línea
|
| Programador aficionado. Me quiero centrar en programar videojuegos. La API que uso para crearlos es OpenGL |
|
|
|
|
AlbertoBSD
Programador y
Moderador Global
Desconectado
Mensajes: 3.705
🏴 Libertad!!!!!
|
Es cierto lo que te dicen, tienes que manejar cadenas en lugar de enteros, por lo menos con la entrada que muestras el 0 a la izquierda se perderia con un entero. #include<stdio.h> #include<string.h> int main() { char *numero = "011110011100011"; int i = 0; int n,m = 1,entrar = 0; while(i < len) { n = 0; printf("Evaluando %c\n",numero [i ]); while(numero[i] == '1' && i < len) { n++; i++; entrar =1; } if( entrar ) { m = m * n; i--; entrar =0; } i++; } }
|
|
« Última modificación: 8 Mayo 2016, 21:00 pm por AlbertoBSD »
|
En línea
|
|
|
|
geeke
Desconectado
Mensajes: 93
|
Otro enfoque en C++ #include <iostream> int main() { int c, m = 1, v = 0; for(; (c = std::cin.get()) != '\n'; v += c & 1) if( v && c == '0' && std::cin.peek() == '1' ) { m *= v; std::cout << v << '*'; v = 0; } std::cout << v << " = " << (m *= v); }
|
|
|
En línea
|
|
|
|
SebaC
Desconectado
Mensajes: 16
|
Hola gracias a todos tengo una pregunta en el código de Geeke veo esta asignación v += c & 1 puedes explicarme que hace
|
|
|
En línea
|
|
|
|
MAFUS
Desconectado
Mensajes: 1.603
|
En C, facilito y para toda la família #include <stdio.h> int main() { char str[255]; int n = 0; int res = 1; int i; for(i = 0; i < sizeof(str); ++i) { if(str[i] == '1') ++n; else { if(n) res *= n; n = 0; } } return 0; }
|
|
|
En línea
|
|
|
|
geeke
Desconectado
Mensajes: 93
|
Los caracteres '0' y '1' son equivalente a: 48 en base 2: 110001 49 en base 2: 110000 El primero tiene el bit 1 a cero, el segundo no al realizar c & 1 la expresión resulta en 1 si el carácter es '1' y 0 si el carácter es '0'. Y de paso otra aproximación en C #include <stdio.h> int main(void) { int m = 1, n; while (1) { if (n > 0) { m *= n; n = 0; } else break; } return 0; }
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Problema al sumar 2 numeros en visual basic.
« 1 2 »
Programación Visual Basic
|
El_Marine
|
10
|
5,186
|
4 Agosto 2006, 23:47 pm
por Robokop
|
|
|
¿Error en mi BAT? Multiplicar números [Solucionado]
Scripting
|
_Sergi_
|
2
|
4,610
|
10 Febrero 2011, 22:45 pm
por _Sergi_
|
|
|
Multiplicar los numeros introducidos en los nodos de una lista.
Programación General
|
danndres
|
0
|
2,038
|
5 Diciembre 2013, 05:36 am
por danndres
|
|
|
¿Un acumulador para sumar la serie fibonacci?
Programación C/C++
|
Exorcista12
|
2
|
4,038
|
17 Enero 2014, 06:48 am
por Exorcista12
|
|
|
sumar numeros en un texto
Programación General
|
daniel7885
|
6
|
4,912
|
22 Septiembre 2016, 18:28 pm
por Eleкtro
|
|