Given the triangle of consecutive odd numbers:
1
3 5
7 9 11
13 15 17 19
21 23 25 27 29
...
Calculate the sum of the numbers in the nth row of this triangle (starting at index 1) e.g.: (Input --> Output)
1 --> 1
2 --> 3 + 5 = 8
import "package:test/test.dart";
import "package:solution/solution.dart";
void main() {
group("basic tests", () {
test("Testing for 1", () => expect(rowSumOddNumbers(1), equals(1)));
test("Testing for 2", () => expect(rowSumOddNumbers(2), equals(8)));
test("Testing for 13", () => expect(rowSumOddNumbers(13), equals(2197)));
test("Testing for 19", () => expect(rowSumOddNumbers(19), equals(6859)));
test("Testing for 41", () => expect(rowSumOddNumbers(41), equals(68921)));
test("Testing for 42", () => expect(rowSumOddNumbers(42), equals(74088)));
test("Testing for 74", () => expect(rowSumOddNumbers(74), equals(405224)));
test("Testing for 86", () => expect(rowSumOddNumbers(86), equals(636056)));
test("Testing for 93", () => expect(rowSumOddNumbers(93), equals(804357)));
test("Testing for 101", () => expect(rowSumOddNumbers(101), equals(1030301)));
});
}
import 'dart:math';
int rowSumOddNumbers(int n) {
List<List<int>> triangle = [];
int rowStart = 1;
for (int i = 1; i <= n; i++) {
List<int> row = List<int>.generate(i, (index) => rowStart + 2 * index);
triangle.add(row);
rowStart += 2 * i;
}
return triangle.last.fold(0, (a, b) => a + b);
}
import 'dart:math';
int rowSumOddNumbers(int n) {
return pow(n, 3);
}
int rowSumOddNumbers(int n) => n * n * n;