Another update from ingydotnet^djgoku
This commit is contained in:
parent
91df62d461
commit
948b86eafa
7604 changed files with 108452 additions and 22726 deletions
|
|
@ -1,37 +1,36 @@
|
|||
function fib(n:Int64):int64;
|
||||
function fib(n: Int64): Int64;
|
||||
|
||||
type TFibMat = array[0..1] of array[0..1] of int64;
|
||||
type TFibMat = array[0..1] of array[0..1] of Int64;
|
||||
|
||||
function FibMatMul(a,b:TFibMat):TFibMat;
|
||||
var i,j,k:integer;
|
||||
tmp:TFibMat;
|
||||
begin
|
||||
for i:=0 to 1 do
|
||||
for j:=0 to 1 do
|
||||
begin
|
||||
tmp[i,j]:=0;
|
||||
for k:=0 to 1 do tmp[i,j]:=tmp[i,j]+a[i,k]*b[k,j];
|
||||
end;
|
||||
FibMatMul:=tmp;
|
||||
end;
|
||||
|
||||
function FibMatExp(a:TFibMat;n:int64):TFibmat;
|
||||
begin
|
||||
if n<=1 then fibmatexp:=a else
|
||||
if (n mod 2 = 0) then FibMatExp:=FibMatExp(FibMatMul(a,a), n div 2) else
|
||||
if (n mod 2 = 1) then FibMatExp:=FibMatMul(a,FibMatExp(FibMatMul(a,a),(n) div 2));
|
||||
end;
|
||||
function FibMatMul(a,b: TFibMat): TFibMat;
|
||||
var i,j,k: integer;
|
||||
tmp: TFibMat;
|
||||
begin
|
||||
for i := 0 to 1 do
|
||||
for j := 0 to 1 do
|
||||
begin
|
||||
tmp[i,j] := 0;
|
||||
for k := 0 to 1 do tmp[i,j] := tmp[i,j] + a[i,k] * b[k,j];
|
||||
end;
|
||||
FibMatMul := tmp;
|
||||
end;
|
||||
|
||||
function FibMatExp(a: TFibMat; n: Int64): TFibmat;
|
||||
begin
|
||||
if n <= 1 then fibmatexp := a
|
||||
else if (n mod 2 = 0) then FibMatExp := FibMatExp(FibMatMul(a,a), n div 2)
|
||||
else if (n mod 2 = 1) then FibMatExp := FibMatMul(a, FibMatExp(FibMatMul(a,a), n div 2));
|
||||
end;
|
||||
|
||||
var
|
||||
matrix:TFibMat;
|
||||
matrix: TFibMat;
|
||||
|
||||
begin
|
||||
matrix[0,0]:=1;
|
||||
matrix[0,1]:=1;
|
||||
matrix[1,0]:=1;
|
||||
matrix[1,1]:=0;
|
||||
if n>1 then
|
||||
matrix:=fibmatexp(matrix,n-1);
|
||||
fib:=matrix[0,0];
|
||||
matrix[0,0] := 1;
|
||||
matrix[0,1] := 1;
|
||||
matrix[1,0] := 1;
|
||||
matrix[1,1] := 0;
|
||||
if n > 1 then
|
||||
matrix := fibmatexp(matrix,n-1);
|
||||
fib := matrix[0,0];
|
||||
end;
|
||||
|
|
|
|||
13
Task/Fibonacci-sequence/Elixir/fibonacci-sequence-1.elixir
Normal file
13
Task/Fibonacci-sequence/Elixir/fibonacci-sequence-1.elixir
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
defmodule Fibonacci do
|
||||
def fib(0), do: 0
|
||||
def fib(1), do: 1
|
||||
def fib(n), do: fib(0, 1, n-2)
|
||||
|
||||
def fib(_, prv, -1), do: prv
|
||||
def fib(prvprv, prv, n) do
|
||||
next = prv + prvprv
|
||||
fib(prv, next, n-1)
|
||||
end
|
||||
end
|
||||
|
||||
IO.inspect Enum.map(0..10, fn i-> Fibonacci.fib(i) end)
|
||||
|
|
@ -0,0 +1 @@
|
|||
Stream.unfold({0,1}, fn {a,b} -> {a,{b,a+b}} end) |> Enum.take(10)
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
(defun fib (n a b c)
|
||||
(if (< c n) (fib n b (+ a b) (+ 1 c) )
|
||||
(if (= c n) b a) ))
|
||||
|
||||
(defun fibonacci (n) (if (< n 2) n (fib n 0 1 1) ))
|
||||
10
Task/Fibonacci-sequence/Emacs-Lisp/fibonacci-sequence-2.l
Normal file
10
Task/Fibonacci-sequence/Emacs-Lisp/fibonacci-sequence-2.l
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
(defun fibonacci (n)
|
||||
(let ( (vec) (i) (j) (k) )
|
||||
(if (< n 2) n
|
||||
(progn
|
||||
(setq vec (make-vector (+ n 1) 0) i 0 j 1 k 2)
|
||||
(setf (aref vec 1) 1)
|
||||
(while (<= k n)
|
||||
(setf (aref vec k) (+ (elt vec i) (elt vec j) ))
|
||||
(setq i (+ 1 i) j (+ 1 j) k (+ 1 k) ))
|
||||
(elt vec n) ))))
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
(insert
|
||||
(mapconcat '(lambda (n) (format "%d" (fibonacci n) ))
|
||||
(number-sequence 0 15) " ") )
|
||||
|
|
@ -1,3 +1,6 @@
|
|||
fib(0) -> 0;
|
||||
-module(fib).
|
||||
-export([fib/1).
|
||||
|
||||
fib(0) -> 1;
|
||||
fib(1) -> 1;
|
||||
fib(N) when N > 1 -> fib(N-1) + fib(N-2).
|
||||
fib(N) -> fib(N-1) + fib(N-2).
|
||||
|
|
|
|||
|
|
@ -1,3 +1,12 @@
|
|||
fib(N) -> fib(N,0,1).
|
||||
fib(0,Res,_) -> Res;
|
||||
fib(N,Res,Next) when N > 0 -> fib(N-1, Next, Res+Next).
|
||||
-module(fiblin).
|
||||
-export([fib/1])
|
||||
|
||||
fib(0) -> 0;
|
||||
fib(1) -> 1;
|
||||
fib(2) -> 1;
|
||||
fib(3) -> 2;
|
||||
fib(4) -> 3;
|
||||
fib(5) -> 5;
|
||||
|
||||
fib(N) when is_integer(N) -> fib(N - 6, 5, 8).
|
||||
fib(N, A, B) -> if N < 1 -> B; true -> fib(N-1, B, A+B) end.
|
||||
|
|
|
|||
1
Task/Fibonacci-sequence/Erlang/fibonacci-sequence-3.erl
Normal file
1
Task/Fibonacci-sequence/Erlang/fibonacci-sequence-3.erl
Normal file
|
|
@ -0,0 +1 @@
|
|||
io:write([fiblin:fib(X) || X <- lists:seq(1,10) ]).
|
||||
|
|
@ -1,14 +1,16 @@
|
|||
# (fib n) = the nth Fibonacci number
|
||||
\fib=
|
||||
(
|
||||
(@\loop\x\y\n
|
||||
le n 0 x;
|
||||
\z=(+ x y)
|
||||
\n=(- n 1)
|
||||
loop y z n
|
||||
)
|
||||
0 1
|
||||
\loop==
|
||||
(\x\y\n
|
||||
le n 0 x;
|
||||
\z=(+ x y)
|
||||
\n=(- n 1)
|
||||
loop y z n
|
||||
)
|
||||
loop 0 1
|
||||
)
|
||||
|
||||
|
||||
# Now test it:
|
||||
for 0 20 (\n say (fib n))
|
||||
|
|
|
|||
32
Task/Fibonacci-sequence/Kotlin/fibonacci-sequence.kotlin
Normal file
32
Task/Fibonacci-sequence/Kotlin/fibonacci-sequence.kotlin
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
package fibonacci
|
||||
|
||||
enum class Fibonacci {
|
||||
ITERATIVE {
|
||||
override fun invoke(n: Long) = if (n < 2 )
|
||||
n
|
||||
else {
|
||||
var n1: Long = 0
|
||||
var n2: Long = 1
|
||||
var i = n
|
||||
do {
|
||||
val sum = n1 + n2
|
||||
n1 = n2
|
||||
n2 = sum
|
||||
} while (i-- > 1)
|
||||
n1
|
||||
}
|
||||
},
|
||||
RECURSIVE {
|
||||
override fun invoke(n: Long): Long = if (n < 2) n else this(n - 1) + this(n - 2)
|
||||
};
|
||||
|
||||
abstract operator fun invoke(n: Long): Long
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val r = 0..30L
|
||||
Fibonacci.values() forEach {
|
||||
print("\n${it.name()}: ")
|
||||
r forEach { i -> print(" " + it(i)) }
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,5 @@
|
|||
(define (fibonacci n)
|
||||
(let (a 0 b 1 c n i 2)
|
||||
(while (<= i n)
|
||||
(setq c (+ a b)
|
||||
a b
|
||||
b c)
|
||||
(++ i))
|
||||
c))
|
||||
(let (L '(0 1))
|
||||
(dotimes (i n)
|
||||
(setq L (list (L 1) (apply + L))))
|
||||
(L 1)) )
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
(define (fibonacci n)
|
||||
(if (< n 2) 1
|
||||
(+ (fibonacci (- n 1)) (fibonacci (- n 2)))))
|
||||
(print(fibonacci 10)) ;;89
|
||||
(+ (fibonacci (- n 1))
|
||||
(fibonacci (- n 2)))))
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
(define (fibonacci n)
|
||||
(letn (f '((0 1) (1 1)) fib f)
|
||||
(dotimes (i n)
|
||||
(set 'fib (multiply fib f)))
|
||||
(fib 0 1)) )
|
||||
|
||||
(print(fibonacci 10)) ;;89
|
||||
|
|
@ -3,3 +3,10 @@ let rec fib_rec n =
|
|||
n
|
||||
else
|
||||
fib_rec (n - 1) + fib_rec (n - 2)
|
||||
|
||||
(* with support for negatives *)
|
||||
let rec fib = function
|
||||
0 -> 0
|
||||
| 1 -> 1
|
||||
| n -> if n > 0 then fib (n-1) + fib (n-2)
|
||||
else fib (n+2) - fib (n+1)
|
||||
|
|
|
|||
|
|
@ -5,3 +5,8 @@ let fib n =
|
|||
| _ -> fib_aux (n-1) b (a+b)
|
||||
in
|
||||
fib_aux n 0 1
|
||||
|
||||
(* support for negatives *)
|
||||
let fib n =
|
||||
if n < 0 && n mod 2 = 0 then -fib (abs n)
|
||||
else fib (abs n)
|
||||
|
|
|
|||
|
|
@ -7,3 +7,13 @@ let fib =
|
|||
| n -> fib_aux f1 (f1 +/ f0) (n - 1)
|
||||
in
|
||||
fib_aux (num_of_int 0) (num_of_int 1)
|
||||
|
||||
(* support for negatives *)
|
||||
let fib n =
|
||||
if n < 0 && n mod 2 = 0 then minus_num (fib (abs n))
|
||||
else fib (abs n)
|
||||
;;
|
||||
(* It can be called from the command line with an argument *)
|
||||
(* Result is send to standart output *)
|
||||
let n = int_of_string Sys.argv.(1) in
|
||||
print_endline (string_of_num (fib n))
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
open Num
|
||||
|
||||
let mul (a,b,c) (d,e,f) =
|
||||
(a*/d +/ b*/e, a*/e +/ b*/f, b*/e +/ c*/f)
|
||||
let mul (a,b,c) (d,e,f) = let bxe = b*/e in
|
||||
(a*/d +/ bxe, a*/e +/ b*/f, bxe +/ c*/f)
|
||||
|
||||
let id = (Int 1, Int 0, Int 1)
|
||||
let rec pow a n =
|
||||
if n=1 then a else
|
||||
if n=0 then id else
|
||||
let b = pow a (n/2) in
|
||||
if (n mod 2) = 0 then mul b b else mul a (mul b b)
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1 @@
|
|||
sub fib (Int $n --> Int) {
|
||||
$n > 1 or return $n;
|
||||
my ($prev, $this) = 0, 1;
|
||||
($prev, $this) = $this, $this + $prev for 1 ..^ $n;
|
||||
return $this;
|
||||
}
|
||||
my constant @fib = 0, 1, *+* ... *;
|
||||
|
|
|
|||
|
|
@ -1,4 +1 @@
|
|||
proto fib (Int $n --> Int) is cached {*}
|
||||
multi fib (0) { 0 }
|
||||
multi fib (1) { 1 }
|
||||
multi fib ($n) { fib($n - 1) + fib($n - 2) }
|
||||
sub fib ($n) { @fib[$n] }
|
||||
|
|
|
|||
|
|
@ -1,6 +1,2 @@
|
|||
sub fib (Int $n --> Int) {
|
||||
constant φ1 = 1 / constant φ = (1 + sqrt 5)/2;
|
||||
constant invsqrt5 = 1 / sqrt 5;
|
||||
|
||||
floor invsqrt5 * (φ**$n + φ1**$n);
|
||||
}
|
||||
my constant @neg_fib = 0, 1, *-* ... *;
|
||||
sub fib ($n) { $n >= 0 and @fib[$n] or @neg_fib[-$n]; }
|
||||
|
|
|
|||
|
|
@ -1 +1,6 @@
|
|||
my @fib := 0, 1, *+* ... *;
|
||||
sub fib (Int $n --> Int) {
|
||||
$n > 1 or return $n;
|
||||
my ($prev, $this) = 0, 1;
|
||||
($prev, $this) = $this, $this + $prev for 1 ..^ $n;
|
||||
return $this;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1,4 @@
|
|||
sub fib ($n) { @fib[$n] }
|
||||
proto fib (Int $n --> Int) is cached {*}
|
||||
multi fib (0) { 0 }
|
||||
multi fib (1) { 1 }
|
||||
multi fib ($n) { fib($n - 1) + fib($n - 2) }
|
||||
|
|
|
|||
|
|
@ -1,2 +1,6 @@
|
|||
my @neg_fib := 0, 1, *-* ... *;
|
||||
sub fib ($n) { $n >= 0 and @fib[$n] or @neg_fib[-$n]; }
|
||||
sub fib (Int $n --> Int) {
|
||||
constant φ1 = 1 / constant φ = (1 + sqrt 5)/2;
|
||||
constant invsqrt5 = 1 / sqrt 5;
|
||||
|
||||
floor invsqrt5 * (φ**$n + φ1**$n);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
def fib_iter(n)
|
||||
return 0 if n == 0
|
||||
fib_prev, fib = 1, 1
|
||||
(n.abs - 2).times { fib_prev, fib = fib, fib + fib_prev }
|
||||
fib * (n < 0 ? (-1)**(n + 1) : 1)
|
||||
def fib(n, sequence=[1])
|
||||
n.times do
|
||||
current_number, last_number = sequence.last(2)
|
||||
sequence << current_number + (last_number or 0)
|
||||
end
|
||||
|
||||
sequence.last
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,9 +1,8 @@
|
|||
def fib_rec(n)
|
||||
if n <= -2
|
||||
(-1)**(n + 1) * fib_rec(n.abs)
|
||||
elsif n <= 1
|
||||
n.abs
|
||||
else
|
||||
fib_rec(n - 1) + fib_rec(n - 2)
|
||||
end
|
||||
def fib(n, sequence=[1])
|
||||
return sequence.last if n == 0
|
||||
|
||||
current_number, last_number = sequence.last(2)
|
||||
sequence << current_number + (last_number or 0)
|
||||
|
||||
fib(n-1, sequence)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -1,66 +1,30 @@
|
|||
// Works with 0.13.0-dev (f673e9841)
|
||||
fn fib<F>(n: i64, f: F) -> (i64, i64) where F: Fn(i64) {
|
||||
if n < 0 {
|
||||
// Let these variables be mutated, otherwise too slow
|
||||
let mut n1:i64 = 0;
|
||||
let mut n2:i64 = -1;
|
||||
let mut i:i64 = 0;
|
||||
let mut tmp:i64;
|
||||
#![feature(zero_one)]
|
||||
use std::num::One;
|
||||
use std::ops::Add;
|
||||
|
||||
while i > n {
|
||||
f(n1);
|
||||
tmp = n1-n2;
|
||||
if tmp > 0 && n2 > 0 { //Detect overflow
|
||||
println!("\nReached the limit of i64, halting");
|
||||
return (n1, i);
|
||||
}
|
||||
n1 = n2;
|
||||
n2 = tmp;
|
||||
i -= 1;
|
||||
}
|
||||
(n1+n2, n)
|
||||
} else if n > 0 {
|
||||
// And these variables
|
||||
let mut n1:i64 = 0;
|
||||
let mut n2:i64 = 1;
|
||||
let mut i:i64 = 0;
|
||||
let mut tmp:i64;
|
||||
struct Fib<T> {
|
||||
curr: T,
|
||||
next: T,
|
||||
}
|
||||
|
||||
while i < n {
|
||||
f(n1);
|
||||
tmp = n1+n2;
|
||||
if tmp < 0 { //Detect overflow
|
||||
println!("\nReached the limit of i64, halting");
|
||||
return (n1, i);
|
||||
}
|
||||
n1 = n2;
|
||||
n2 = tmp;
|
||||
i += 1;
|
||||
}
|
||||
(n2-n1, n)
|
||||
} else {
|
||||
f(0);
|
||||
(0,1)
|
||||
impl<T> Fib<T> where T: One {
|
||||
fn new() -> Self {
|
||||
Fib {curr: T::one(), next: T::one()}
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> Iterator for Fib<T> where T: Add<T, Output=T> + Copy {
|
||||
type Item = T;
|
||||
fn next(&mut self) -> Option<Self::Item>{
|
||||
let new = self.curr + self.next;
|
||||
self.curr = self.next;
|
||||
self.next = new;
|
||||
Some(self.curr)
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let args = std::os::args();
|
||||
let default_n = 10i64;
|
||||
let n = match args.len() {
|
||||
1 => default_n,
|
||||
_ => args[1].parse().unwrap_or(default_n)
|
||||
};
|
||||
|
||||
/* Use the loop protocol to be able to do things
|
||||
* with the sequence given, in this case, print them out.
|
||||
* The loop itself returns a tuple with where it got to and
|
||||
* what the number is.
|
||||
*/
|
||||
let (result, n) = fib(n, |num| {
|
||||
//print out the sequence
|
||||
print!("{} ", num);
|
||||
});
|
||||
|
||||
println!("\nThe {}th fibonacci number is: {}", n, result);
|
||||
for i in Fib::<u64>::new() {
|
||||
println!("{}", i);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
// Works with 0.13.0-dev (f673e9841)
|
||||
fn main() {
|
||||
fn fib(n: int) -> int {
|
||||
fn _fib(n: int, a: int, b: int) -> int {
|
||||
fn fib(n: i32) -> i32 {
|
||||
fn _fib(n: i32, a: i32, b: i32) -> i32 {
|
||||
match (n, a, b) {
|
||||
(0, _, _) => a,
|
||||
_ => _fib(n-1, a+b, a)
|
||||
|
|
@ -11,7 +10,7 @@ fn main() {
|
|||
_fib(n, 0, 1)
|
||||
}
|
||||
|
||||
for n in range(0, 20) {
|
||||
for n in 0..20 {
|
||||
println!("{}", fib(n));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
15
Task/Fibonacci-sequence/SETL/fibonacci-sequence.setl
Normal file
15
Task/Fibonacci-sequence/SETL/fibonacci-sequence.setl
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
$ Print out the first ten Fibonacci numbers
|
||||
$ This uses Set Builder Notation, it roughly means
|
||||
$ 'collect fib(n) forall n in {0,1,2,3,4,5,6,7,8,9,10}'
|
||||
print({fib(n) : n in {0..10}});
|
||||
|
||||
$ Iterative Fibonacci function
|
||||
proc fib(n);
|
||||
A := 0; B := 1; C := n;
|
||||
for i in {0..n} loop
|
||||
C := A + B;
|
||||
A := B;
|
||||
B := C;
|
||||
end loop;
|
||||
return C;
|
||||
end proc;
|
||||
|
|
@ -1,19 +1,10 @@
|
|||
;;; Fibonacci numbers using Edsger Dijkstra's algorithm
|
||||
;;; http://www.cs.utexas.edu/users/EWD/ewd06xx/EWD654.PDF
|
||||
(define (fib)
|
||||
(define (nxt lv nv) (cons nv (lambda () (nxt nv (+ lv nv)))))
|
||||
(cons 0 (lambda () (nxt 0 1))))
|
||||
|
||||
(define (fib n)
|
||||
(define (fib-aux a b p q count)
|
||||
(cond ((= count 0) b)
|
||||
((even? count)
|
||||
(fib-aux a
|
||||
b
|
||||
(+ (* p p) (* q q))
|
||||
(+ (* q q) (* 2 p q))
|
||||
(/ count 2)))
|
||||
(else
|
||||
(fib-aux (+ (* b q) (* a q) (* a p))
|
||||
(+ (* b p) (* a q))
|
||||
p
|
||||
q
|
||||
(- count 1)))))
|
||||
(fib-aux 1 0 0 1 n))
|
||||
;;; test...
|
||||
(define (show-stream-take n strm)
|
||||
(define (shw-nxt n strm) (begin (display (car strm))
|
||||
(if (> n 1) (begin (display " ") (shw-nxt (- n 1) ((cdr strm)))) (display ")"))))
|
||||
(begin (display "(") (shw-nxt n strm)))
|
||||
(show-stream-take 30 (fib))
|
||||
|
|
|
|||
19
Task/Fibonacci-sequence/Scheme/fibonacci-sequence-5.ss
Normal file
19
Task/Fibonacci-sequence/Scheme/fibonacci-sequence-5.ss
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
;;; Fibonacci numbers using Edsger Dijkstra's algorithm
|
||||
;;; http://www.cs.utexas.edu/users/EWD/ewd06xx/EWD654.PDF
|
||||
|
||||
(define (fib n)
|
||||
(define (fib-aux a b p q count)
|
||||
(cond ((= count 0) b)
|
||||
((even? count)
|
||||
(fib-aux a
|
||||
b
|
||||
(+ (* p p) (* q q))
|
||||
(+ (* q q) (* 2 p q))
|
||||
(/ count 2)))
|
||||
(else
|
||||
(fib-aux (+ (* b q) (* a q) (* a p))
|
||||
(+ (* b p) (* a q))
|
||||
p
|
||||
q
|
||||
(- count 1)))))
|
||||
(fib-aux 1 0 0 1 n))
|
||||
|
|
@ -1,13 +1,5 @@
|
|||
:Disp "0" //Dirty, I know, however this does not interfere with the code
|
||||
:Disp "1"
|
||||
:Disp "1"
|
||||
:1→A
|
||||
:1→B
|
||||
:0→C
|
||||
:Goto 1
|
||||
:Lbl 1
|
||||
:A+B→C
|
||||
:Disp C
|
||||
:B→A
|
||||
:C→B
|
||||
:Goto 1
|
||||
{0,1
|
||||
While 1
|
||||
Disp Ans(1
|
||||
{Ans(2),sum(Ans
|
||||
End
|
||||
|
|
|
|||
|
|
@ -1,9 +1,3 @@
|
|||
:Prompt N
|
||||
:0→A
|
||||
:1→B
|
||||
:For(I,1,N)
|
||||
:A→C
|
||||
:B→A
|
||||
:C+B→B
|
||||
:End
|
||||
:A
|
||||
Prompt N
|
||||
.5(1+√(5 //golden ratio
|
||||
(Ans^N–(-Ans)^-N)/√(5
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue