Professional Documents
Culture Documents
2:
La secuencia de Fibonacci es muy conocida en los circulos matemticos y
tiene la particularidad que cada nmero es igual a la suma de 2 anteriores
trminos. La serie de Fibonacci comienza con los nmeros 0 y 1,
produciendo la siguiente secuencia: 0, 1, 1, 2, 3,5, 8, 13,.,., etc. Muestre
todo. Muestre todos los nmeros de Fibonacci que un nmero dado.
Solucin:
Definicin de variables:
Diagrama N/S
Leer m
a=0
b= 1
Imprimir a
mientras ( b < m)
Imprimir b
c=a+b
a=b
b=c
Solucin:
Definicin de variables:
a: primer nmero
b: segundo nmero
i: posibles divisores
Diagrama N/S
Leer a, b
i= 1
mientras ( i<= a AND i<=b )
a MOD i == 0 AND
b MOD i==0
V F
Imprimir i
i=i+1
Ejemplo 3.5.4:
Factorizar un nmero ingresado por teclado. Por ejemplo 8 = 2 x 2 x2.
Solucin:
Definicin de variables:
Diagrama N/S
Leer n
i=2
mientras (i< =n )
n MOD i == 0
V F
n = n/ i
Imprimir i i = i+ l
Ejemplo 3.5.5:
Escriba un algoritmo que diga si un nmeroes primo.
Solucin:
Definicin de variables:
n: nmero a evaluar
i: posible divisor
band: 0 indica que no es primo
Diagrama N/S
Leer n
i=n/2
band =1
mientras (i >1 )
n MOD i == 0
V F
band = 0 i=i-l
band = =1
V F
Imprimir Imprimir
"Es primo "No es primo"
Ejemplo 3.5.6:
Escriba un programa que permita reducir una fraccin a su mnima
expresin. Por ejemplo: 28/64 = 7/16.
Solucin:
Definicin de variables:
a : numerador
b: denominador
i: posible divisor de a y b
Diagrama N/S
Leer a, b
i=2
mientras ( i< =a AND i<=b)
a MOD i == 0 AND
b MOD i= = 0
V F
a=a/i
i = i+ l
b=b/i
Imprimir
a, , b
Ejemplo 3.5.7:
Lea un nmero y forme otro nmero con las cifras en orden inverso. As si el
nmero es 12345 el nuevo nmero ser 54321.
Solucin:
Definicin de variables:
Para obtener un nuevo nmero inv, formado por los dgitos de n, pero en
orden invertido, debemos obtener cada uno de los dgitos de n, e ir
desplazndolos un valor posicional (unidad, decena, centena, etc.). Cada uno
de los dgitos, pueden ser obtenidos al buscar el resto de la divisin entera
entre 10 (n MOD 10) y se debe ir incrementando el valor posicional
mediante la multiplicacin del resto por 10, y su acumulacin en la variable
inv. Se puede usar la divisin entera (que de manera estndar se representa
mediante el operador DIV, y que en C++, se implementa con el operador /)
siempre y cuando sus argumentos sean de tipo entero. El ciclo se ejecuta
mientras el nmero an tenga dgitos que obtener (mientras n sea mayor
que cero), luego del cual imprimimos inv.
Diagrama N/S
Leer n
inv = 0
mientras ( n >0 )
Imprimir
inv
Ejemplo 3.5.8:
Un nmero se considera perfecto cuando la suma de sus divisores es igual al
nmero. Por ejemplo 6 tiene como divisores a 1, 2 y 3 y como 1+2+3= 6, el
nmero 6 ser perfecto; 28 tiene como divisores a 1,2, 4, 7, 14, luego 28 es
perfecto pues 1+2+ 4+7+14=28, lo mismo ocurre con 496 y 8128. Escriba
un programa que lea un nmero y diga si es perfecto
Solucin;
Definicin de variables:
n: numero a evaluar
s: suma de los divisores
i: posibles divisores
Diagrama N/S
Leer n
s=0
i=n/2
mientras (i >0 )
n MOD i == 0
V F
s=s+1
i=i-l
s = =1
V F
Imprimir Imprimir
"Es perfecto" "No es perfecto"
Ejemplo 3.5.9:
Los nmeros Amstrong o cubos perfectos, son aquellos que sumados a los
cubos de sus dgitos nos dan el mismo nmero. Por ejemplo 153 es un cubo
perfecto pues 13 + 53 + 33 = 153. Lea un nmero y diga si es o no, un cubo
perfecto.
Solucin:
Definicin de variables:
n: nmero a evaluar
se: suma de los cubos de sus cifras
temp: se iguala inicialmente a n, y sirve para trabajar en el algoritmo sin
perder n
De manera similar al ejercicio anterior pero esta vez obtenemos cada dgito
para elevarlo al cubo y acumularlo en sc. Si se resulta ser igual a n, entonces
el nmero es un cubo perfecto.
Pruebe el algoritmo con los siguientes cubos perfectos: 1, 153, 370, 371 y
407.
Diagrama N/S
Leer n
sc = 0
temp = n
mientras (temp >0 )
sc = sc + (temp MOD 10)3
temp = temp DIV 10
n = = sc
V F
Imprimir Imprimir
"Cubo perfecto" "No es cubo perfecto