Programa que pedirá un número entero y hace una función int f2x3 con:
1) Si "n" es 1 escribirá "n" por pantalla y devolverá un 1.
2) Si "n" no es 1 y si es múltiplo de 2 y es múltiplo de 3 escribirá "n" por pantalla y
llamará a f2x3 con el valor n+5.
3) Si "n" no es 1 y es múltiplo de 2 pero no es múltiplo de 3 escribirá "n" por
pantalla y llamará a f2x3 con el valor n/2.
4) Si "n" no es 1 y es múltiplo de 3 pero no es múltiplo de 2 escribirá "n" por
pantalla y llamará a f2x3 con el valor n+2.
5) Si "n" no es 1 y no es múltiplo de 2 ni múltiplo de 3 escribirá "n" por pantalla
y llamará a f2x3 con el valor n-1.
Ejemplo: Si introducimos un 18
Escribirá por pantalla: 18,23,22,11,10,5,4,2,1 Total: 9 llamadas
Código
#include <stdio.h> #include <stdlib.h> #define FALSE 0 #define TRUE 1 /* Declaracion de las funciones */ unsigned int f2x3 (int); /* Menu principal */ int main(void){ unsigned int n; // Variable "n" donde se guarda el numero y que utilizará la funcion return 0; } // Fin main /* Funcion */ unsigned int f2x3 (int n) { if (n == 1) return 1; // Primer caso, si el valor es igual a 1 entonces retornará 1 if ((n != 1) && (n % 2 == 0) && (n % 3 == 0)) return f2x3(n+5); // Caso II if ((n != 1) && (n % 2 == 0) && (n % 3 != 0)) return f2x3(n/2); // Caso III if ((n != 1) && (n % 2 != 0) && (n % 3 == 0)) return f2x3(n+2); // Caso IV if ((n != 1) && (n % 2 != 0) && (n % 3 != 0)) return f2x3(n-1); // Caso V } // Fin de la funcion
Gracias y un saludo