rimo030 / type-challenges

Collection of TypeScript type challenges with online judge
https://tsch.js.org/
MIT License
3 stars 0 forks source link

no - 4182 Fibonacci Sequence #138

Open rimo030 opened 2 weeks ago

rimo030 commented 2 weeks ago
type Fibonacci<T extends number, Index extends any[] = [any], Prev extends any[] = [], Result extends any[] = [any]> = Index['length'] extends T
  ? Result['length']
  : Fibonacci<T, [...Index, any], Result, [...Result, ...Prev]>
import type { Equal, Expect } from '@type-challenges/utils'

type cases = [
  Expect<Equal<Fibonacci<1>, 1>>,
  Expect<Equal<Fibonacci<2>, 1>>,
  Expect<Equal<Fibonacci<3>, 2>>,
  Expect<Equal<Fibonacci<8>, 21>>,
]