barba59 ha scritto:
#include <stdio.h>
void f(int n, int a, int b)
{
n--?printf("%d\n",a),f(n,b,a+b):0;
}
La mia idea era buona ma l'hai già condensata al limite del possibile prima che potessi controbattere (e ci ho anche provato... ).
Come vedi sono proprio all'osso...comunque è quella che mi è piaciuta di più
L'unica proposta da ripresentare funziona su coppie e partendo dalla tua precedente (quella non ricorsiva), possiamo togliere una variabile e dimezzare i cicli.
barba59 ha scritto:
void Fibonacci(int n)
{
for(int a=1, b=1, c=2; n--; printf("%d\n", a), a=b, b=c, c=a+b);
}
void f(int n)
{
/* pair */
unsigned long long a=1, b=1;
for(; n--; printf("%llu\n%llu\n", a,b), a+=b, b+=a);
}
@Lysz210, non conosco python ti allego una in bash:
fibonacci ()
{
local n=$1
local o=0
local b=1;
for ((;n--;))
do
echo $a
c=$((a+b))
a=$b
b=$c
done
}
Leggi le definizioni delle variabili in verticale