| |||
Problema con recursividad Hola colegas!!! Necesitaria ayuda con un problema de recursion, tengo que informar la cantidad de veces que se repite una cifra en un numero, ya hice varios intentos pero no encuentro la solucion a esa funcion... alguien me podria dar una mano u orientar un poco??? se los agradeceria enormemente! :) |
| |||
Respuesta: Problema con recursividad Primero que todo gracias por contestar! :) aca hay un intento, pero casi que no tiene logica, el caso base creo que esta bien (creo) :/ #include <stdio.h> int ocurrencia (int num3, int num4) { /*Inicio de declaracion de variables*/ int minimo; /*Fin de declaracion de variables*/ minimo=num3%10; if (num3<10) return 0; else return ocurrencia (((num3-minimo)/10,num4)*1); } main () { /*Inicio de declaracion de variables*/ int num1,num2; /*Fin de declaracion de variables*/ printf ("Ingrese un numero y una posicion separados por coma: " ); scanf ("%d,%d", &num1, &num2); printf ("El numero de ocurrencias es: %d", ocurrencia (num1,num2)); fflush (stdin); getchar (); } |
| |||
Respuesta: Problema con recursividad int ocurrencia (int num3, int num4) { /*Inicio de declaracion de variables*/ int minimo,cont; /*Fin de declaracion de variables*/ minimo=num3%10; /*num4 es el digito al cual se le quiere averiguar las ocurrencias*/ if ((num3<10) && (minimo==num4)) { return 1; } else { if ((num3<10) && (minimo!=num4)) { return 0; } else { if (minimo==num4) { return ocurrencia ((num3-minimo)/10)+1); } else { return ocurrencia ((num3-minimo)/10); } } } main () { /*Inicio de declaracion de variables*/ int num1,num2; /*Fin de declaracion de variables*/ printf ("Ingrese un numero y una posicion separados por coma: " ); scanf ("%d,%d", &num1, &num2); printf ("El numero de ocurrencias es: %d", ocurrencia (num1,num2)); fflush (stdin); getchar (); } Aca hay otro , pero el compilador me tira errores de argumentos (dice que hay demasiados ) |
| |||
Respuesta: Problema con recursividad La teoria de recursion la entiendo bien, el problema es aplicarlo en problemas, y no entiendo bien como sacar la formula matematica para usar en la funcion recursiva |
| |||
Respuesta: Problema con recursividad A ver .... Podrías usar un vector de 10 elementos e inicializas todos los elementos a 0:
Código C:
Para qué?Ver original Ahora, vamos sacando dígito por dígito del número (con bucles) y vamos haciendo esto:
Código C:
Finalmente, mostramos cada elemento de Nums con la condición que sea mayor que 0:Ver original
Código C:
Ver original Si te das cuenta te puse casi todo el código que necesitas sólo te falta hacer el bucle que saque dígito por dígito. |
| |||
Respuesta: Problema con recursividad Fijate si te sirve y si lo entendes. No lo pude probar pero creo que funciona. int ocurrencia (int numero, int digito) { int d; if (numero<10) { if (numero == digito) return 1; else return 0; }else{ d = numero % 10; // Calculo el residuo de la division. Al dividir por diez el residuo siempre es el primer digito. if (d == digito) return (1 + ocurrencia (numero / 10,digito); else return ocurrencia (numero / 10, digito); } } |
| |||
Respuesta: Problema con recursividad Ya esta! aparentemente el error de argumentos que tiraba el compilador indicaba que me faltaba pasar un parametro de forma recursiva, (yo solo le pasaba 1), de todos modos gracias a los 2 por la ayuda, que anden bien ! :) |
Etiquetas: |