Skip to content

Commit 0fd202b

Browse files
author
Raúl Faulí
committed
#6 - Dart
1 parent 62e62e7 commit 0fd202b

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/// #06 RECURSIVIDAD
2+
3+
void main() {
4+
printNumbers(100);
5+
6+
// Extra
7+
print(factorial(10));
8+
print(fibonacci(10));
9+
print(count); // 177 me parecen muchas iteraciones decido mejorar el algoritmo
10+
print(fibonacciWithStart(10));
11+
print(count2); // 10
12+
}
13+
14+
printNumbers(int n) {
15+
if (n >= 0) {
16+
print(n);
17+
printNumbers(n - 1);
18+
}
19+
}
20+
21+
// Extra
22+
// 1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880
23+
int factorial(int n) {
24+
if (n <= 1) {
25+
return 1;
26+
}
27+
28+
return n * factorial(n - 1);
29+
}
30+
31+
// 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144
32+
int count = 0;
33+
int fibonacci(int n) {
34+
count++;
35+
if (n <= 1) {
36+
return n;
37+
}
38+
39+
return fibonacci(n - 1) + fibonacci(n - 2);
40+
}
41+
42+
int count2 = 0;
43+
int fibonacciWithStart(int n, {(int, int) start = (0, 1)}) {
44+
count2++;
45+
if (n <= 1) {
46+
return (n == 0) ? start.$1 : start.$2;
47+
}
48+
49+
return fibonacciWithStart(n - 1, start: (start.$2, start.$1 + start.$2));
50+
}

0 commit comments

Comments
 (0)