Sum of odd numbers
Given the triangle of consecutive odd numbers:
1
3 5
7 9 11
13 15 17 19
21 23 25 27 29
...
Calculate the row sums of this triangle from the row index (starting at index 1) e.g.:
rowSumOddNumbers(1); // 1
rowSumOddNumbers(2); // 3 + 5 = 8
rowSumOddNumbers 1 (* 1 *)
rowSumOddNumbers 2 (* 3 + 5 = 8 *)
rowSumOddNumbers(1); // 1
rowSumOddNumbers(2); // 3 + 5 = 8
rowSumOddNumbers(1); -- 1
rowSumOddNumbers(2); -- 3 + 5 = 8
rowSumOddNumbers(1); // 1
rowSumOddNumbers(2); // 3 + 5 = 8
rowSumOddNumbers(1); /* 1 */
rowSumOddNumbers(2); /* 3 + 5 = 8 */
rowSumOddNumbers(1) # 1
rowSumOddNumbers(2) # 3 + 5 = 8
rowSumOddNumbers(1); // 1
rowSumOddNumbers(2); // 3 + 5 = 8
row_sum_odd_numbers(1); # 1
row_sum_odd_numbers(2); # 3 + 5 = 8
row_sum_odd_numbers(1); # 1
row_sum_odd_numbers(2); # 3 + 5 = 8
row_sum_odd_numbers(1); # 1
row_sum_odd_numbers(2); # 3 + 5 = 8
rowSumOddNumbers(1); // 1
rowSumOddNumbers(2); // 3 + 5 = 8
rowSumOddNumbers(1); // 1
rowSumOddNumbers(2); // 3 + 5 = 8
rowSumOddNumbers 1 // 1
rowSumOddNumbers 2 // 3 + 5 = 8
rowSumOddNumbers 1 -- 1
rowSumOddNumbers 2 -- 3 + 5 = 8
row_sum_odd_numbers(1) # 1
[1] 1
row_sum_odd_numbers(2) # 3 + 5
[1] 8
mov rdi 1
call row_sum_odd_numbers ; rax <- 1
mov rdi 2
call row_sum_odd_numbers ; rax <- 3 + 5
(row-sum-odd-numbers 1) # 1
(row-sum-odd-numbers 2) # 3 + 5 = 8
rowsumoddnumbers(1) # 1
rowsumoddnumbers(2) # 3 + 5 = 8
rowSumOddNumbers(1) // 1
rowSumOddNumbers(2) // 3 + 5 = 8
rowSumOddNumbers(1) // 1
rowSumOddNumbers(2) // 3 + 5 = 8
SumOfOdd.row_sum_odd_numbers(1) // 1
SumOfOdd.row_sum_odd_numbers(2) // 3 + 5 = 8
row_sum_odd_numbers(1) % 1
row_sum_odd_numbers(2) % 3 + 5 = 8
rowSumOddNumbers(1) // 1
rowSumOddNumbers(2) // 3 + 5 = 8
Solutions
👴 C
#include <inttypes.h>
uint64_t rowSumOddNumbers(uint32_t n)
{
uint32_t row = 1;
uint64_t num = 1, res = 0;
for(;row!=n;row++)
num+=2*row;
for(int i = 0; i < n; ++i, num+=2)
res+=num;
return res;
}
Last updated
Was this helpful?