Fibonacci sequence: Difference between revisions
Content added Content deleted
Langurmonkey (talk | contribs) |
m (FutureBasic entry moved out of the Basic group) |
||
Line 1,965: | Line 1,965: | ||
end</syntaxhighlight> |
end</syntaxhighlight> |
||
==={{header|FutureBasic}}=== |
|||
==== Iterative ==== |
|||
<syntaxhighlight lang="futurebasic">window 1, @"Fibonacci Sequence", (0,0,480,620) |
|||
local fn Fibonacci( n as long ) as long |
|||
static long s1 |
|||
static long s2 |
|||
long temp |
|||
if ( n < 2 ) |
|||
s1 = n |
|||
exit fn |
|||
else |
|||
temp = s1 + s2 |
|||
s2 = s1 |
|||
s1 = temp |
|||
exit fn |
|||
end if |
|||
end fn = s1 |
|||
long i |
|||
CFTimeInterval t |
|||
t = fn CACurrentMediaTime |
|||
for i = 0 to 40 |
|||
print i;@".\t";fn Fibonacci(i) |
|||
next i |
|||
print : printf @"Compute time: %.3f ms",(fn CACurrentMediaTime-t)*1000 |
|||
HandleEvents</syntaxhighlight> |
|||
Output: |
|||
<pre> |
|||
0. 0 |
|||
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 |
|||
Compute time: 2.143 ms</pre> |
|||
==== Recursive ==== |
|||
Cost is a time penalty |
|||
<syntaxhighlight lang="futurebasic"> |
|||
local fn Fibonacci( n as NSInteger ) as NSInteger |
|||
NSInteger result |
|||
if n < 2 then result = n : exit fn |
|||
result = fn Fibonacci( n-1 ) + fn Fibonacci( n-2 ) |
|||
end fn = result |
|||
window 1 |
|||
NSInteger i |
|||
CFTimeInterval t |
|||
t = fn CACurrentMediaTime |
|||
for i = 0 to 40 |
|||
print i;@".\t";fn Fibonacci(i) |
|||
next |
|||
print : printf @"Compute time: %.3f ms",(fn CACurrentMediaTime-t)*1000 |
|||
HandleEvents |
|||
</syntaxhighlight> |
|||
{{output}} |
|||
<pre> |
|||
0. 0 |
|||
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 |
|||
Compute time: 2844.217 ms |
|||
</pre> |
|||
==={{header|GFA Basic}}=== |
==={{header|GFA Basic}}=== |
||
Line 6,963: | Line 6,817: | ||
in a |
in a |
||
</syntaxhighlight> |
</syntaxhighlight> |
||
=={{header|FutureBasic}}== |
|||
=== Iterative === |
|||
<syntaxhighlight lang="futurebasic">window 1, @"Fibonacci Sequence", (0,0,480,620) |
|||
local fn Fibonacci( n as long ) as long |
|||
static long s1 |
|||
static long s2 |
|||
long temp |
|||
if ( n < 2 ) |
|||
s1 = n |
|||
exit fn |
|||
else |
|||
temp = s1 + s2 |
|||
s2 = s1 |
|||
s1 = temp |
|||
exit fn |
|||
end if |
|||
end fn = s1 |
|||
long i |
|||
CFTimeInterval t |
|||
t = fn CACurrentMediaTime |
|||
for i = 0 to 40 |
|||
print i;@".\t";fn Fibonacci(i) |
|||
next i |
|||
print : printf @"Compute time: %.3f ms",(fn CACurrentMediaTime-t)*1000 |
|||
HandleEvents</syntaxhighlight> |
|||
Output: |
|||
<pre> |
|||
0. 0 |
|||
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 |
|||
Compute time: 2.143 ms</pre> |
|||
=== Recursive === |
|||
Cost is a time penalty |
|||
<syntaxhighlight lang="futurebasic"> |
|||
local fn Fibonacci( n as NSInteger ) as NSInteger |
|||
NSInteger result |
|||
if n < 2 then result = n : exit fn |
|||
result = fn Fibonacci( n-1 ) + fn Fibonacci( n-2 ) |
|||
end fn = result |
|||
window 1 |
|||
NSInteger i |
|||
CFTimeInterval t |
|||
t = fn CACurrentMediaTime |
|||
for i = 0 to 40 |
|||
print i;@".\t";fn Fibonacci(i) |
|||
next |
|||
print : printf @"Compute time: %.3f ms",(fn CACurrentMediaTime-t)*1000 |
|||
HandleEvents |
|||
</syntaxhighlight> |
|||
{{output}} |
|||
<pre> |
|||
0. 0 |
|||
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 |
|||
Compute time: 2844.217 ms |
|||
</pre> |
|||
=={{header|Fōrmulæ}}== |
=={{header|Fōrmulæ}}== |