Foros del Web » Creando para Internet » Sistemas de gestión de contenidos »

problema con calculo en un script

Estas en el tema de problema con calculo en un script en el foro de Sistemas de gestión de contenidos en Foros del Web. Estimados, Estoy desarrollando una aplicación en php y tengo el siguiente problema en el cual me encuentro estancado y creo que puede haber una solucion ...
  #1 (permalink)  
Antiguo 01/09/2009, 18:14
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta problema con calculo en un script

Estimados,

Estoy desarrollando una aplicación en php y tengo el siguiente problema en el cual me encuentro estancado y creo que puede haber una solucion mas facil al de hacer mucho código con varias validaciones, en realiad he tratado de resolver el problema con pocas lines en una extructura de control y no puedo.

El problema es el siguiente.

Tengo un script que hara recargas de cells y las recargas solo se pueden hacer por diferentes valores y si quiero hacer una recarga que no comprenda los valores que pudeo ejecutar conta la compañia de celulares tendría que hacer un grupo de recargas donde la suma de ellas me den el valor de la recarga.



Hay q tener en cuenta q devo de hacer la minima cantidad de transacciones por lo que siempre debo de usar los valores mas altos.
Ej.

Valores de recarga:

$valores_de_recargas = array (10, 25, 50, 100, 200, 300,500);

Supongamos que un cliente quiere recargas 1775 $.

El resultado sería q tengo q hacer 3 cargas de 500 $ una de 200 $ una de 50 $ y otra de 25 $.

El tema q no me sale el script q haga eso.

si alguien me puede ayudar se lo agradezco.
  #2 (permalink)  
Antiguo 01/09/2009, 19:55
 
Fecha de Ingreso: septiembre-2009
Mensajes: 7
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: problema con calculo en un script

bien talvez no es lo mas prolijo pero ya lo resolvi de esta forma;

Código:
$RechargeValues				= array (10,25,50,100,200,300,500);
	$RechVal = array_reverse ( $RechargeValues );
	$MinValue= 10;
	$Amount = 451;
	$Amount2 = $Amount;
	$Iterar  = true;
	$i=1;
	while ($Iterar) {
		if($Amount2 >= current ($RechVal) ) {
			$Amount2-=current ($RechVal ) ;
			$Current +=current($RechVal); 
			echo "Recargar: ".current($RechVal)."<br>";
		}
		else if (current($RechVal) == $MinValue ) {
			$Iterar = false;
			echo "Puede recargar: ".$Current."<br>";
			echo "Saldo:".($Amount - $Current)."<br>";
			echo "Entre $i veces";
		} else {
			next ($RechVal);
		}
		$i++;	
	}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:51.