PHP - El primer dígito de la izquierda indica el total de ceros, el segundo la cantidad de unos...

   
Vista:

El primer dígito de la izquierda indica el total de ceros, el segundo la cantidad de unos...

Publicado por BENDER (4 intervenciones) el 05/02/2018 05:21:16
AYUDA... COMO PUEDO HACER ESTO EN PHP
El primer dígito de la izquierda indica la cantidad total de ceros en el número, el segundo la cantidad de unos, el tercero la cantidad de dos, y así sucesivamente....
Por ejemplo 1210 cumple con esto, ya que tiene 1 cero, 2 unos, 1 dos y 0 tres
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

El primer dígito de la izquierda indica el total de ceros, el segundo la cantidad de unos...

Publicado por xve (6646 intervenciones) el 05/02/2018 11:54:03
Hola Bender... haber si te sirve este código:

1
2
3
4
5
6
7
8
<?php
$numero="1210";
 
for($i=0;$i<strlen($numero);$i++)
{
	echo "hay ".$numero[$i]." veces el numero ".$i."<br>";
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

El primer dígito de la izquierda indica el total de ceros, el segundo la cantidad de unos...

Publicado por nick (4 intervenciones) el 05/02/2018 17:19:06
Muchas gracias pero solo me funciona con el número del ejemplo 1210, estoy ingresando números por pantalla pero no me lanza el resultado correcto.
ej.
Numero ingresado: 12210
hay 1 veces el numero 0
hay 2 veces el numero 1
hay 2 veces el numero 2
hay 1 veces el numero 3
hay 0 veces el numero 4
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El primer dígito de la izquierda indica el total de ceros, el segundo la cantidad de unos...

Publicado por Yamil Bracho (761 intervenciones) el 05/02/2018 17:23:25
usa substr_count
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

El primer dígito de la izquierda indica el total de ceros, el segundo la cantidad de unos...

Publicado por xve (6646 intervenciones) el 05/02/2018 17:54:54
Hola Nick, yo lo he probado y me funciona perfectamente!!! Nos puedes mostrar el código que has utilizado que no te funciona?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El primer dígito de la izquierda indica el total de ceros, el segundo la cantidad de unos...

Publicado por nick (4 intervenciones) el 05/02/2018 18:01:19
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<p>Ingresa un numero:<input type:"text" name="numero" id="numero" /></p> // ingresa numero por pantalla
 
<?php
$numeropen = $_GET["numero"];
 
 
echo "<h2>Datos ingresados correctamente</h2>";
echo "Numero ingresado: " . $numeropen ."<br/>";
?>
 
 
 
?php
for($i=0;$i<strlen($numeropen);$i++)
{
	echo "hay ".$numeropen[$i]." veces el numero ".$i."<br>";
}
 
if($numeropen){
	echo "numeropen ingresado";
}
else{
	echo "numero Open no ingresado";
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

El primer dígito de la izquierda indica el total de ceros, el segundo la cantidad de unos...

Publicado por xve (6646 intervenciones) el 05/02/2018 19:12:57
Hola Nick, pero ahi te falta código no??? como envías el formulario? falta el botón para enviar el valor introducido, no?

Modificando un poco tu código funciona correctamente...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<form>
<p>Ingresa un numero:<input type="text" name="numero" id="numero" /></p>
<input type="submit" value="Enviar">
</form>
 
<?php
$numeropen = $_GET["numero"];
 
echo "<h2>Datos ingresados correctamente</h2>";
echo "Numero ingresado: " . $numeropen ."<br/>";
 
for($i=0;$i<strlen($numeropen);$i++)
{
	echo "hay ".$numeropen[$i]." veces el numero ".$i."<br>";
}
?>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El primer dígito de la izquierda indica el total de ceros, el segundo la cantidad de unos...

Publicado por nick (4 intervenciones) el 05/02/2018 19:44:57
Si la tengo perdon por no subirla.... a lo que me refiero es que si tu ingresas un número diferente al ejemplo no entrega un resultado correcto. El algoritmo deberia funcionara para cualquier numero que se ingrese, como por ejemplo:

Numero ingresado: 3000 //este es el numero ingresado
hay 3 veces el numero 0
hay 0 veces el numero 1
hay 0 veces el numero 2
hay 0 veces el numero 3 //error

Además como se podria hacer un algoritmo que genere una lista automática de esto números buscando diferentes combinaciones que cumplan con requisito solicitado.

SI alguien lo pudiese hacer me seria de gran ayuda ya que este ejercicio me tienen hace días atrapado XD.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

El primer dígito de la izquierda indica el total de ceros, el segundo la cantidad de unos...

Publicado por xve (6646 intervenciones) el 05/02/2018 21:04:13
Hola Nick, no entiendo porque es erróneo el "hay 0 veces el numero 3"

3000 es
3 veces 0
0 veces 1
0 veces 2
0 veces 3

Me puedes explicar porque no es correcto?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El primer dígito de la izquierda indica el total de ceros, el segundo la cantidad de unos...

Publicado por Andrés (2 intervenciones) el 05/02/2018 21:08:24
Porque el 3 aparece 1 vez
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

El primer dígito de la izquierda indica el total de ceros, el segundo la cantidad de unos...

Publicado por Andrés (2 intervenciones) el 05/02/2018 20:19:06
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$numero="1210";
 
$c = array();
 
for( $i = 0 ; $i < 10 ; $i++, $c[$i] = substr_count( $numero, $i ) );
 
$correcto = True;
 
for( $i = 0 ; $correcto && $i < strlen( $numero ) ; $i++, $correcto = ( $numero[$i] == $c[$i] ) );
 
if( !$correcto ) {
 
	echo "Validación fallida"."<br>";
 
}else {
 
	for( $i = 0 ; $i < strlen( $numero ) ; $i++ ) {
 
		echo "Hay ".$numero[$i]." veces el número ".$i."<br>";
 
	}
 
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad