OLD | NEW |
1 var html_input_d; | 1 var html_input_d; |
2 (function(html_input_d) { | 2 (function(html_input_d) { |
3 'use strict'; | 3 'use strict'; |
4 // Function fib: (int) → int | 4 // Function fib: (int) → int |
5 function fib(n) { | 5 function fib(n) { |
6 return _fib(n, new core.Map()); | 6 return dart.notNull(n === 0) || dart.notNull(n === 1) ? 1 : fib(n - 1) + fib
(n - 2); |
7 } | |
8 // Function _fib: (int, Map<int, int>) → int | |
9 function _fib(n, seen) { | |
10 if (dart.notNull(n === 0) || dart.notNull(n === 1)) | |
11 return 1; | |
12 if (seen.get(n) !== null) | |
13 return seen.get(n); | |
14 seen.set(n, _fib(n - 1, seen) + _fib(n - 2, seen)); | |
15 return seen.get(n); | |
16 } | 7 } |
17 // Exports: | 8 // Exports: |
18 html_input_d.fib = fib; | 9 html_input_d.fib = fib; |
19 })(html_input_d || (html_input_d = {})); | 10 })(html_input_d || (html_input_d = {})); |
OLD | NEW |