int n

Anuncio
Ejercicio
Un número N es primo si los únicos enteros positivos
que lo dividen exactamente son 1 y N
Escribe una función que determine si el número N es
un número primo
Utiliza la función en el programa principal para
imprimir los primero 50 números primos
Números Primos
Determine si el número
tiene otro divisor
además de 1 y N
Realice un ciclo
empezando por 2 y
terminado en N-1
Si encuentra un número
que divide a N
entonces el número no
es primo
i=2
n % i == 0
NO
i = i +1
i<=n-1
SI
NO
Es número primo
SI
No es
primo
Recursividad
Recursividad es el proceso en el cual una función se
llama a si misma en forma repetida hasta satisfacer
alguna determinada condición
Este proceso se utiliza para calcular procesos que
están definidos en términos de si mismos. Ejemplo
n!= n ⋅ (n − 1)!
F (n ) = F (n − 1) + F (n − 2 )
0!= 1
F (0 ) = 0, F (1) = 1
Recursividad
n!= n ⋅ (n − 1)!
0!= 1
int factorial(int n)
{
if (n<= 1)
return 1;
else
return(n*factorial(n-1));
}
Ejemplo
#include <stdio.h>
#include <stdlib.h>
int factorial(int n);
int main(){
int n;
Este programa
calcula el
factorial de un
número dado
printf(“n = ”);
scanf(“%d”,&n);
printf(“El factorial de %d es %d”,n,factorial(n));
system("pause");
return 0;
}
int factorial(int n)
{
if (n<= 1)
return 1;
else
return(n*factorial(n-1));
}
Serie de Fibonacci
F (n ) = F (n − 1) + F (n − 2 )
F (0 ) = 0, F (1) = 1
int fibonacci(int n)
{
if (n = 0) return 0;
else if (n = 1)return 1;
else return(fibonacci(n-1)+fibonacci(n-2));
}
Ejemplo
#include <stdio.h>
#include <stdlib.h>
int fibonacci(int n);
Este
programa
calcula los
15
primeros
números
de la serie
de
Fibonacci
int main(){
int i;
printf(“La 15 primeros números en la serie de Fibonacci son\n”);
for(i=0; i<=15; i++)
printf(“%d, ”,fibonacci(i));
system("pause");
return 0;
}
int fibonacci(int n)
{
if (n = 0) return 0;
else if (n = 1)return 1;
else return(fibonacci(n-1)+fibonacci(n-2));
}
Ejercicio
Escriba una función recursiva que calcule la
potencia n de un número x dado usando la
siguiente formula:
x = x⋅x
n
n
x =1
0
Utilice la función para calcular las primera 10
potencias del número
Solución
Inicio
n==0
return 1
n==1
return x
return x*xn-1
Fin
int potencia(int x, int n)
{
switch(n){
case 0: return 1;
case 1: return x;
default:
return(x*potencia(x,n-1));
}
}
Solución
Inicio
n==0
return x*xn-1
return 1
Fin
int potencia(int x, int n)
{
if(n == 0)
return 1;
else
return(x*potencia(x,n-1));
}
Ejemplo
#include <stdio.h>
#include <stdlib.h>
int potencia(int x, int n);
Este
programa
calcula las
primeras
10
potencias
del número
dado
int main(){
int i,x;
printf(“Proporciona un numero”);scanf(“%d”,&x)
printf(“Sus primeras 10 potencias son: ”)
for(i=0; i<10; i++)
printf(“%d, ”,potencia(x,i));
printf(“\n”)
system("pause");
return 0;
}
int potencia(int x, int n)
{
if(n == 0)return 1;
else return(x*potencia(x,n-1));
}
Ejercicio
Conversión de decimal a binario
25
÷2
1
12
÷2
0
6
÷2
0
3
÷2
1
1
÷2
1
11001
0
Condición de paro parte entera igual a cero
Ejercicio
Escriba un programa en C que realice la conversión
de un número decimal a binario
Para realizar la conversión utilice una función
recursiva.
Solución
Inicio
n/2
!=0
imprime n%2
Fin
convierte n/2
void bin2dec(int n)
{
if ((n/2) != 0)
bin2dec(n/2);
printf("%d", n%2);
}
Ejemplo
#include <stdio.h>
#include <stdlib.h>
int potencia(int x, int n);
void bin2dec(int n);
Este
convierte
un número
decimal a
binario
int main()
{
int n;
printf("Proporciona el número a convertir : ");
scanf("%d",&n);
printf("El número en binario es : ");
bin2dec(n);
system("pause");
return 0;
}
void bin2dec(int n)
{
if ((n/2) != 0)
bin2dec(n/2);
printf("%d", n%2);
}
Ejercicio
Modifique la función bin2dec de tal forma que
pueda convertir un número decimal a binario, octal
y hexadecimal.
Utilice la función modificada para convertir un
número dado en binario, octal y hexadecimal
Descargar