Avete risolto il debug friday di venerdì?
Qui trovate la soluzione; se non siete riusciti, vi ricordiamo di andare a rivedere l’articolo sulle combinazioni di monete per approfondire meglio tutti gli aspetti relativi ai cicli.

CODICE

package riccanza;

import java.util.ArrayList;

public class CombinazioniGiusto
{
	static ArrayList<String> ris = new ArrayList<String>();

	static public void agg(int k1, int k2, int k3, int k4, int k5, int k6, int k7)
	{
		ris.add("[ 1 cent:"+k1+
				", 2 cent:"+k2+
				", 5 cent:"+k3+
				", 10 cent:"+k4+
				", 20 cent:"+k5+
				", 50 cent:"+k6+
				", 100 cent:"+k7+"]");
	}

	public static void main(String[] args) 
	{
		//ORA SI CHE CI SIAMO! 
		//Possibili valori delle monete 
		int m[]  = {1, 2, 5, 10, 20, 50, 100};
		//Ognuno avrà un moltiplicatore (k)
		//la somma di km per km in soluzione deve dare 200
		int lim[] = {200, 100, 40, 20, 10, 4, 2};
		int v = 0;

		for(int k1=0;k1<=lim[0];k1++)
		{
			v = k1 * m[0]; 
			if(v>200)
				break;
			for(int k2=0;k2<=lim[1];k2++)
			{
				v = k1 * m[0] + k2 * m[1]; 
				if(v>200)
					break;
				for(int k3=0;k3<=lim[2];k3++)
				{
					v = k1 * m[0] + k2 * m[1] + k3 * m[2]; 
					if(v>200)
						break;
					for(int k4=0;k4<=lim[3];k4++)
					{
						v = k1 * m[0] + k2 * m[1] + k3 * m[2] + k4 * m[3]; 
						if(v>200)
							break;
						for(int k5=0;k5<=lim[4];k5++)
						{
							v = k1 * m[0] + k2 * m[1] + k3 * m[2] + k4 * m[3] + k5 * m[4]; 
							if(v>200)
								break;
							for(int k6=0;k6<=lim[5];k6++)
							{
								v = k1 * m[0] + k2 * m[1] + k3 * m[2] + k4 * m[3] + k5 * m[4] + k6 * m[5]; 
								if(v>200)
									break;
								if(v==200)
									agg(k1, k2, k3, k4, k5, k6, 0);
								if(v<200)
									for(int k7=0;k7<=lim[6];k7++)
									{
										v = k1 * m[0] + k2 * m[1] + k3 * m[2] + k4 * m[3] + k5 * m[4] + k6 * m[5] + k7 * m[6]; 
										if(v>200)
											break;
										if(v==200)
											agg(k1, k2, k3, k4, k5, k6, k7);
									}
							}
						}
					}
				}
			}
		}
		System.out.println(ris.size());
	}

}

Fateci sapere se avete altre idee per i codici da debuggare e ci vediamo domani per un nuovo articolo a tema digital!


Se siete interessati ad approfondire il discorso, iscrivetevi alla nostra newsletter e seguite la pagina Facebook di Formati e Occupati.
Sei invece volete nuovi codici da studiare e provare, visitate il nostro blog