ex12-01-8

実行結果

1: 1
2: 1
3: 2
4: 3
5: 5
6: 8
7: 13
8: 21
9: 34
10: 55
11: 89
12: 144
13: 233
14: 377
15: 610
16: 987
17: 1597
18: 2584
19: 4181
20: 6765
21: 10946
22: 17711
23: 28657
24: 46368
25: 75025
26: 121393
27: 196418
28: 317811
29: 514229
30: 832040
31: 1346269
32: 2178309
33: 3524578
34: 5702887
35: 9227465
36: 14930352
37: 24157817
38: 39088169
39: 63245986
40: 102334155
41: 165580141
42: 267914296
43: 433494437
44: 701408733
45: 1134903170
46: 1836311903
47: 2971215073
48: 4807526976
49: 7778742049
50: 12586269025
51: 20365011074
52: 32951280099
53: 53316291173
54: 86267571272
55: 139583862445
56: 225851433717
57: 365435296162
58: 591286729879
59: 956722026041
60: 1548008755920
61: 2504730781961
62: 4052739537881
63: 6557470319842
64: 10610209857723
65: 17167680177565
66: 27777890035288
67: 44945570212853
68: 72723460248141
69: 117669030460994
70: 190392490709135
71: 308061521170129
72: 498454011879264
73: 806515533049393
74: 1304969544928657
75: 2111485077978050
76: 3416454622906707
77: 5527939700884757
78: 8944394323791464
79: 14472334024676220
80: 23416728348467684
81: 37889062373143900
82: 61305790721611580
83: 99194853094755490
84: 160500643816367070
85: 259695496911122560
86: 420196140727489660
87: 679891637638612200
88: 1100087778366101900
89: 1779979416004714000
90: 2880067194370816000
91: 4660046610375530000
92: 7540113804746346000
93: 12200160415121877000
94: 19740274219868226000
95: 31940434634990100000
96: 51680708854858330000
97: 83621143489848430000
98: 135301852344706760000
99: 218922995834555200000
100: 354224848179262000000

ソース

// #@@range_begin(list1)
class FibonacciSequence {
  [Symbol.iterator]() {
    let a = 0, b = 1;
    return {
      next() {
        let rval = { value: b, done: false };
        b += a;
        a = rval.value;
        return rval;
      }
    };
  }
}
// #@@range_end(list1)

// #@@range_begin(list2)
const fib = new FibonacciSequence();
let i = 0;
for(let n of fib) {
  console.log(`${i+1}: ${n}`);
  if(++i > 99) break;
}
// #@@range_end(list2)