Llicència
Pots copiar i redistribuir aquest material seguint la llicència Attribution-NonCommercial-ShareAlike 4.0 International CC BY-NC-SA 4.0, indicant-ne autors originals, l'origen (aquesta web), sense fins comercials i mantenint-ne aquesta la llicència
Autors:
Exercicis Recursivitat
- Usa el mateix projecte que l'usat als exercicis
- Crea un package cat.itb.elteuusuari(*).dam.m03.uf2.recursivity
- La classe de cada exercici ha de ser el nom de l'exercici
(*) elteuusuari correspon a la direcció de correu eltectrònic del centre, sense punts, fins a @itb.cat
Sumari
N pometes
- Volem fer un programa que escrigui la cançó de N pometes té el pomer (és repeteix fins a que ja no queden pomes)
N pometes té el pomer,
de N una, de N una,
N pometes té el pomer,
de N una en caigué.
Si mireu el vent d'on vé
veureu el pomer com dansa,
si mireu el vent d'on vé
veureu com dansa el pomer.
- Tenim ja feta la següent funció que retorna l'estrofa per un nombre de pomes
public String getAppleSongStanza(int applesCount){
return String.format("%1$d pometes té el pomer,%nde %1$d una, de %1$d una,%n" +
"%1$d pometes té el pomer,%nde %1$d una en caigué.%nSi mireu el vent d'on vé%n" +
"veureu el pomer com dansa,%nsi mireu el vent d'on vé%n" +
"veureu com dansa el pomer.%n", applesCount);
}
- Fes la següent funció que retorna la canço sencera. Pots fer-ho sense usar un while o un for?
public String getAppleSong(int applesCount);
MultiplicationRecursive
Calcula el producte de dos naturals mitjançant la suma i crides recursives.
input: 5 3
output: 15
DotLineRecursive
- Demana un enter a l'usuari.
- Imprimeix per pantalla tants punts com l'usuari hagi indicat
- Usa una funció recursiva
input
10
output
..........
ArrayMaxValueRecursive
L'usuari introduirà 1 array d'enters, com s'indica al mètode ArrayReader.
Un cop llegits tots, printa per pantalla el valor més gran.
Usa una funció recursiva per calcular el màxim.
AnotherInverseOrderRecursive
L'usuari entrarà un conjunt d'enters per pantalla. Quan introdueixi el -1, és que ja ha acabat.
Imprimeix-los en l'odre invers al que els ha entrat.
Usa una funció recursiva.
input
1 2 3 4 8 2 -1
output
[2, 8, 4, 3, 2, 1]
SlowUpDownArray
Definirem un SlowUpDown array com una llista de números que, la diferència cada número i el següent hi ha una diferencia de 1.
Un exemple de SlowUpDown array és el següent:
1 2 3 4 5 4 3 4 5 6 5 4 3 2
Volem fer un progama que donat un array amb alguns valors deternimants i algunes incognites ens indiqui si podem crear un SlowUpDown array.
Per exemple, si tenim el següent array:
5 ? ? ? ? ? 11 ? 11 ? ? 8
Podem crear el SlowUpDown array següent
5 6 7 8 9 10 11 10 11 10 9 8
L'usuari introduirà primer la llargada de l'array. Després introduirà les diferents caselles fixades. Escriurà -1 quan ja hagi acabat.
Si pots costruir un SlowUpDown array imprimeix-lo, o imprimeix "impossible" en cas contrari.
Nota: la primera casella i l'última del array sempre estaran definides.
Input
12
0 5
6 11
8 11
11 8
Output
[5, 6, 7, 8, 9, 10, 11, 10, 11, 10, 9, 8]