La serie de fibonacci la forman una serie de números tales que:
El primer término de la serie es el número 1
El segundo término de la serie es el número 1
Los siguientes términos de la serie de fibonacci se obtienen de la suma de los dos anteriores:
1, 1, 2, 3, 5, 8, 13, .....
Vamos a escribir el programa java que muestra los N primeros números de la serie. El valor de N se lee por teclado.
import java.util.*;
/**
* Serie de Fibonacci en Java
* Programa que imprima los N primeros números de la serie de Fibonacci.
* El primer número de la serie es 1, el segundo número es 1 y cada uno de los
* siguientes es la suma de los dos anteriores.
* 1, 1, 2, 3, 5, 8, 13, ....... , N
* @author Enrique
*/
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int numero,fibo1,fibo2,i;
do{
System.out.print("Introduce numero mayor que 1: ");
numero = sc.nextInt();
}while(numero<=1);
System.out.println("Los " + numero + " primeros términos de la serie de Fibonacci son:");
fibo1=1;
fibo2=1;
System.out.print(fibo1 + " ");
for(i=2;i<=numero;i++){
System.out.print(fibo2 + " ");
fibo2 = fibo1 + fibo2;
fibo1 = fibo2 - fibo1;
}
System.out.println();
}
}
gracias viejo xD
ResponderEliminarDe nada !!
ResponderEliminargracias :)
Eliminaramigo como lo pasarias a un algoritmo?
ResponderEliminarps antes de pasarlo a java me lo arias porfa?
amigo lo pudiste resolver?
Eliminarla serie fibo comienza en cero, no en uno xd
ResponderEliminarpfff ps solo es cambiar a fibo1=0;
Eliminarlol
Este comentario ha sido eliminado por el autor.
ResponderEliminaren forma recursiva como queda??
ResponderEliminarclass Ejercicio{
Eliminarpublic static int fibonacci(int n)
{
if(n<2) return 1;
else
return fibonacci(n-1) + fibonacci(n-2);
}
System.out.println("introduzca el tamaño de la serie: ");
ResponderEliminarint n=Teclado.readInt();
int x =0;
int y =0;
int solucion;
for(int i=1;i<n+1;i++){
if(i==1 || i==2){
System.out.print("1, ");
x=1;
y=1;
}
else{
solucion=x+y;
System.out.print(solucion+",");
x=y;
y=solucion;
}
}
}
Esta sol me gusta más...
la verdad no entiendo nada
EliminarEs mucho más elegante, limpia y eficiente la solución original que ofrece Enrique.
EliminarYo tampoco entiendo ni madres. #ValeVergaLaVida.
Eliminarint veces, fibonacci = 0, anterior = 1, penultimo;
ResponderEliminarSystem.out.print("Ingrese cantidad de veces ");
veces = leer.nextInt();
for (int i = 1; i <= veces; i++)
{
penultimo = fibonacci;
fibonacci = anterior + fibonacci;
anterior = penultimo;
System.out.print(fibonacci + " , ");
}
Con eso te ahorras forzar que muestre las dos veces el 1 mediante un print
Buen aporte. Gracias
Eliminarif (n != 1 || n != 2) {
Eliminarfor (int i = 1; i <= n; i++) {
System.out.print(a+", ");
a = a + b;
b = a - b;
}
} else {
System.out.println("1");
}
De hecho, ni siquiera es necesario el if-else que puse arriba.
Eliminarfor (int i = 1; i <= n; i++) {
System.out.print(a+", ");
a = a + b;
b = a - b;
}
y te ahorras memoria ;)
exelente aporte, muchas gracias
Eliminarexelente aporte, muchas gracias
Eliminarla corrección de las 6:43 debería fallar en el calculo numero 47
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarYo lo solucioné así:
ResponderEliminar--------------------------------------- Clase principal
public class Fibonacci {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Contar a = new Contar();
a.Cuentas(1);
}
}
----------------------------------- clase secundaria
public class Contar {
private int c, a;
public void Cuentas(int b) {
for (int i = 0; i < 15; i++) {
if (b <= 1) {
a = b + 1;
System.out.println("b: " + b);
System.out.println("a: " + a);
b = b + a;
} else {
System.out.println("b: " + b);
c = b + a;
System.out.println("c: " + c);
a = b + c;
System.out.println("a: " + a);
b = a + c;
}
}
}
}
y orientado a objetos como queda?
ResponderEliminarEste es mi código, soy novato en java, me gustaría que lo valoren gracias
ResponderEliminar------------------------------------------------------------------------------------------------------------------
package ejercicios5;
import java.util.Scanner;
/**
*
* @author Villas
*/
public class Ejercicio8 {
public static void main(String[] args) {
int num;
int fib1 = 1;
int fib2 = 1;
Scanner lectura = new Scanner(System.in);
System.out.println("Inserte un numero entero");
num = lectura.nextInt();
for (int i = 0 ; i < num; i++){
System.out.println(fib1 +" , " +fib2);
fib1 = fib1 + fib2;
fib2 = fib1 + fib2;
}
}
}
he observado que cuando se alcanza el limite de la variable salen números negativos por ejemplo si se declaran las variables flib como byte solo hace 5 procesos correctos en cambio si se declara como int realiza mas e incluso mas con long
Eliminarhe observado que cuando se alcanza el limite de la variable salen números negativos por ejemplo si se declaran las variables flib como byte solo hace 5 procesos correctos en cambio si se declara como int realiza mas e incluso mas con long
EliminarHola Salvador, eso es debido al rando de valores de cada tipo de datos. Una variable de tipo byte solo puede contener valores desde -128 hasta 127. En esta entrada del blog tienes los tipos de datos básicos en Java y sus rangos http://puntocomnoesunlenguaje.blogspot.com.es/2012/04/tipos-de-datos-java.html
EliminarSaludos
Este es mi código, soy novato en java, me gustaría que lo valoren gracias
ResponderEliminar------------------------------------------------------------------------------------------------------------------
package ejercicios5;
import java.util.Scanner;
/**
*
* @author Villas
*/
public class Ejercicio8 {
public static void main(String[] args) {
int num;
int fib1 = 1;
int fib2 = 1;
Scanner lectura = new Scanner(System.in);
System.out.println("Inserte un numero entero");
num = lectura.nextInt();
for (int i = 0 ; i < num; i++){
System.out.println(fib1 +" , " +fib2);
fib1 = fib1 + fib2;
fib2 = fib1 + fib2;
}
}
}
Son buenos los programas
ResponderEliminarSon buenos los programas
ResponderEliminarGracias Rubí, espero que te estén sirviendo de ayuda.
Eliminarpublic class Pruebas {
ResponderEliminarpublic static void main(String[] args) {
int fibo1 = 0;
int fibo2 = 1;
System.out.print(fibo1 + " ");
for (int i = 0; i <= 10; i++) {
System.out.print(fibo2 + " ");
fibo2 = fibo1 + fibo2;
fibo1 = fibo2 - fibo1;
}
}
}
ok zenkkiu
ResponderEliminarMi código recursivo tiene un O(n) de mayor costo en tiempo y recursos
ResponderEliminarstatic int fibo (int n)
{
if ((n == 0) || (n == 1))
return 1;
else
return fibo(n-1) + fibo(n-2);
}
public static void main (String[] args)throws IOException
ResponderEliminar{
BufferedReader tecla=new BufferedReader(new InputStreamReader(System.in));
int X, A, B, C;
System.out.println(" CUANTOS NUMEROS DESEAS UD. : ");
X = Integer.parseInt(tecla.readLine());
System.out.print(" LOS " + X + " NUMEROS FIBONACCI ");
A = 0;
B = 1;
C = 0;
while (C < X)
{
C = C + 1;
System.out.println(C + ".-NUMERO FIBONACCI.- " + A);
A = A + B;
B = A - B;
}
}
}
ResponderEliminarFibonacci in ruby
fibo1 = 0
fibo2 = 1
(1..20).each do |i|
puts "#{fibo2} "
fibo2 = fibo1 + fibo2
fibo1 = fibo2 - fibo1
end
Alguien sabe hacer este ejercicio
ResponderEliminarDada la sucesión definida como ��������=������������−3+������������−2+������������−1se pide diseñar un algoritmo que calcule en tiempo logarítmico el término ��������.
Entrada
La entrada consistirá de varias líneas. La primera línea contiene un único número que indica el número de casos, m. A continuación aparece m líneas conteniendo cada una un valor para n.
Salida
La salida contendrá m líneas cada una de las cuales muestra el valor �������� para cada valor, n, de la entrada.
¿para pasarlo a c++ como seria?
ResponderEliminarayudaaaaa necesito un programa que lea 15 numeros y saque la suma y el promedio de estos
ResponderEliminarEste es el mío en Java.
ResponderEliminarNo logré hacer que imprimiera desde el cero si alguien me ayudaría se los agradecería muucho
dejo mi correo por si las moscas o si alguien más tiene dudas o necesita ayuda en algún programa: alonss94@gmail.com
public class Fibonacci {
public static int Fibonacci (int f)
{
if (f==0||f==1)
{
return 1;
}else
return Fibonacci(f-1)+ Fibonacci(f-2);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int tam,res=0;
System.out.println("------Sucecion de Fibonacci------");
System.out.print("Ingrese el tamaño de la suceción: ");
tam= scan.nextInt();
for(int i=0; i<=tam;i++)
{
res= Fibonacci(i);
System.out.print(res + " ");
}
System.out.println();
}
}
asi lo pude hacer amigo public static void main(String[] args) {
Eliminarsc = new Scanner (System.in);
System.out.println("Ingrese la cantidad :");
int can=sc.nextInt();
int n1=0,n2=0,aux1,aux2;
for(int v2=0; v2<can;v2++){
aux1=n1+n2;
System.out.println(aux1);
aux2=aux1-n2;
n2=aux2;
n1=aux1;
if(aux1==0){
n2=1;
}
}
}
mostrar en pantalla todos los números entre 0 y 150 que sean divisibles entre 15. ayuda pls!
ResponderEliminarnecesito el mismo código pero usando solamente while
ResponderEliminarNúmeros Pares menores a 1000 que aparecen en la suceción fibonacci??
ResponderEliminarayuda
lo termine :) .lo comparto a seguir dándole chicos saludos y suerte en este camino ;)
ResponderEliminarpublic static void main(String[] args) {
sc = new Scanner (System.in);
System.out.println("Ingrese la cantidad :");
int can=sc.nextInt();
int n1=0,n2=0,aux1,aux2;
for(int v2=0; v2<can;v2++){
aux1=n1+n2;
System.out.println(aux1);
aux2=aux1-n2;
n2=aux2;
n1=aux1;
if(aux1==0){
n2=1;
}
}
}
de esta forma da tal cual parte de (0) 0.1.1.2.3.5.8.13........
EliminarString strVeces = JOptionPane.showInputDialog("ingrese numero de operandos: ");
ResponderEliminarint veces = Integer.parseInt(strVeces);
int [] num = new int [veces];
num[0] = 0;
num[1] = 1;
for (int i = 0, j = 1, k = 2; i<(veces-2); i++, j++, k++){
num[k] = num[i] + num[j];
System.out.println(num[k]);
me pueden ayudar con un programa de serie fibonacci 0 1 1 2 3 5 8 13 y muestre 6 impares 1 par 1 cero
ResponderEliminarMe puedes ayudar en que si ingresó un numero como verificar que hace parte de la serie de fibonacci
ResponderEliminarYo tengo este codigo si la serie fibo comienza en o
ResponderEliminarpublic class laserie_fibonaci {
public static void main(String args[]) {
int n,nal=1,nan=0,nuv,i=0;
Scanner l=new Scanner(System.in);
System.out.println("Escribe cuantos numeros de la serie fibonacci quieres ver: ");
n=l.nextInt();
System.out.println(0);
System.out.println(1);
while(nan<=nal&&i<n-2) {
nuv=nan+nal;
System.out.println(nuv);
nan=nal;
nal=nuv;
i++;
}
}
}
Me ayudarían a resolver
ResponderEliminarElabore un programa en Java que permita encontrar la sumatoria de los n primeros elementos de la siguiente sucesión numérica: S= ( 3 1 ) 4 − ( 1 5 ) 6 − ( 7 2 ) 9 +( 3 11 ) 14 +( 13 5 ) 18 +( 8 19 ) 27 − .. .
public void numerosFibonacci(){
ResponderEliminarScanner sn = new Scanner(System.in);
System.out.println("Ingresa la cantidad de numeros Fibonacci que van a mostrarse");
int numeros;
int cantidad = sn.nextInt();
int numFibo1=1 , numFibo2 = 1;
System.out.println("Numeros Fibonacci:\n --> Se mostraran " + cantidad + " numeros");
System.out.println(numFibo1+"\n"+numFibo2);
for(int i = 1; i<= (cantidad-2); i ++){
numeros = numFibo1 + numFibo2;
numFibo1= numFibo2;
numFibo2= numeros;
System.out.println(numeros);
}
System.out.println("Fin del proceso");
}
import java.util.Scanner;
ResponderEliminarpublic class SerieFibonacci {
public static void main(String[] args) {
int a, b, aux, num;
Scanner sc=new Scanner(System.in);
do{
System.out.print("Ingrese cantidad de numeros Fibonacci que quiere visualizar: ");
num=sc.nextInt();
}while(num<1);
a=1;
b=1;
aux=a+b;
System.out.print("Serie Fibonacci: " + a + " " + b + " ---> ");
if (num==1) {
System.out.print((a+b) + " ");
}else{
System.out.print((a+b) + " ");
for (int i=1; i<num; i++) {
aux=a+b;
System.out.print((aux+b) + " ");
a=b;
b=aux;
}
}
}
}
y utilizando el método de pilas en java netbeans como quedaría la serie fibonacci?
ResponderEliminarHola alguien me ayuda con unos ejercicios en java script estoy empesando a programar
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarCómo lo resolverias usando los primeros 100 números de la suseción fibonacci? Me ayudaría un montón. Saludos!
ResponderEliminarpublic static void main(String[] args) {
ResponderEliminarScanner sc = new Scanner(System.in);
int limite = 0, suma = 0, a = 1, b = 1;
System.out.print("Ingrese el limite de numeros de la serie Fibonacci: ");
limite = sc.nextInt();
System.out.print(a + " " + b + " ");
for (int i = 0; i < limite - 2; i++) {
suma = a + b;
b = a;
a = suma;
System.out.print(suma + " ");
}
}
y como pudiera ser con un array?? que la persona diga de que tamaño es la serie pero con array?
ResponderEliminarSegún mi lógica quedo así: :)
ResponderEliminar////////////////////////////////////////////////////////////////////////////////
import java.util.Scanner;
public class Fibonacci{
public static void main(String args[]){
Scanner sc = new Scanner(System.in);
int aux=0, aux1, cont = 1;
System.out.println("Introduce un número para mostrar la serie de Fibonacci: ");
int n = Integer.parseInt(sc.nextLine());
System.out.println(" ");
System.out.println("1");
for(int i = 0; i < n; i++){
aux1 = cont;
cont = cont + aux;
System.out.println(cont);
aux = aux1;
}
}
}
Realizar un algoritmo que presente los 10 primeros números Fibonacci además la suma y
ResponderEliminarpromedio de ellos