Diferència entre revisions de la pàgina «M3 - Programació estructurada / Exercicis UF2: Recursivitat»

De wikiserver
Dreceres ràpides: navegació, cerca
 
Línia 20: Línia 20:
  
 
8. Fes una funció recursiva booleana que donats un número i un dígit retorni si aquest dígit pertany al número. Per exemple existeix (1234,3) → true, existeix (1234,7) → false
 
8. Fes una funció recursiva booleana que donats un número i un dígit retorni si aquest dígit pertany al número. Per exemple existeix (1234,3) → true, existeix (1234,7) → false
 +
<!---->
 +
<source lang="java">
 +
package recbooleana;
 +
 +
public class Recbooleana {
 +
 +
    public static void main(String[] args) {
 +
       
 +
        System.out.println(pertanyValor(1237,7));
 +
    }
 +
    public static boolean pertanyValor(int num, int valor){
 +
        if (num < 10){
 +
            return num == valor;
 +
        }
 +
        else{
 +
            return (num%10==valor) || pertanyValor(num/10,valor);
 +
        }
 +
    }
 +
}
 +
</source>
  
 
9. Fes una funció que calculi el producte segons el mètode rus que diu que:
 
9. Fes una funció que calculi el producte segons el mètode rus que diu que:

Revisió de 18:38, 21 abr 2022

1. Torres de Hanoi (amb N introduïda per l’usuari com a paràmetre). S’ha d’anar visualitzant la solució per pantalla.

2. Escriure una funció recursiva que donat un número N (N ≥ 0) passat com a paràmetre calculi la suma de tots els números enters fins a N inclòs.

3. Escriure una funció recursiva que calculi el resultat de X elevat a N amb N >0, sabent que X0 = 1.

4. Escriu una funció recursiva per calcular la suma digital d’un número natural. Per exemple, la suma digital de 18624 és: 4 + 2 + 6 + 8 + 1 = 21

5. Dissenyeu un algoritme recursiu que calculi el màxim comú divisor de dos enters positius, sabent que :

     MCD( X, Y) = MCD (X-Y, Y) SI X > Y
     MCD (X, Y-X) SI Y > X
     X SI X = Y

6. Fes la funció recursiva float SumaHarmonica ( int n ) que retorna la suma :

     1 + 1/2 +1/3 + ... + 1/n

7. Fes una funció recursiva que vaig imprimint la descomposició factorial d’un número enter.

8. Fes una funció recursiva booleana que donats un número i un dígit retorni si aquest dígit pertany al número. Per exemple existeix (1234,3) → true, existeix (1234,7) → false

package recbooleana;

public class Recbooleana {

    public static void main(String[] args) {
        
        System.out.println(pertanyValor(1237,7));
    }
    public static boolean pertanyValor(int num, int valor){
        if (num < 10){
            return num == valor;
        }
        else{
            return (num%10==valor) || pertanyValor(num/10,valor);
        }
    }
}

9. Fes una funció que calculi el producte segons el mètode rus que diu que:

     x*y = ((2*x) *(y/2)) SI y es parell
     x*y =((2*x) *(y/2))+ x SI y és senar.

     Quan y val 1, el resultat és x.

10. Fes una funció recursiva que ompli un tauler n-goro. Un tauler n-goro és una matriu de n files i n+1 columnes que s'omple consecutivament en diagonal i quan ens sortim per una banda entrem per l'altra. L'últim element que s'omple serà l'extrem inferior dret.

     Per exemple amb n=3

       1 10 7 4
       5 2 11 8
       9 6 3 12

     Amb n = 4

       1 17 13 9 5
       6 2 18 14 10
       11 7 3 19 15
       16 12 8 4 20

Soluciones

https://foro.elhacker.net/ejercicios/ejercicios_recursivos_en_java_y_sus_soluciones-t231013.0.html