miércoles, 20 de junio de 2007

Vagabundos y Galletas JAVA

El fichero "GalletasVagabundoPerro.java" contiene:

public class Main {

public static void main(String[] args) {
int numRepartos=5; //nº Repartos
int propMas01=4; //nº Vagabundo - Partes
int limiteGalletas=9999;
int pr=0; // Contador de la recursividad

System.out.println(" CP\tCM1\tCP\tCM2\tCP\tCM3\tCP"+
+"\tCM4\tCP\tCM1-4");
for (int i=0;ipropMas01)
pr=ComeGalletas(galletasActuales,propMas01,pr,imp);
}

public static int ComeGalletas(int galletasActuales,int propMas01,
int pr, boolean imp){
pr++;
if (divisible(galletasActuales,propMas01))
{

if (imp==true){
System.out.print((galletasActuales+1)+"\t"+
galletasActuales+"\t");
}

galletasActuales=galletasActuales-1-galletasActuales/propMas01;

if (galletasActuales>propMas01)
pr=ComeGalletas(galletasActuales,propMas01,pr,imp);
}

return pr;
}




public static boolean divisible(int num,int div){
float decimal=(float)num/(float)div;
int entero=num/div;
if ((float)(decimal-entero)> 0.000) return false;
else return true;
}
}


------------------------------------------------------------------------------


Produce la siguiente salida:

CP CV1 CP CV2 CP CV3 CP CV4 CP CV1-4
1021 1020 765 764 573 572 429 428 321 320
2045 2044 1533 1532 1149 1148 861 860 645 644
3069 3068 2301 2300 1725 1724 1293 1292 969 968
5117 5116 3837 3836 2877 2876 2157 2156 1617 1616
6141 6140 4605 4604 3453 3452 2589 2588 1941 1940
7165 7164 5373 5372 4029 4028 3021 3020 2265 2264
9213 9212 6909 6908 5181 5180 3885 3884 2913 2912

No hay comentarios: