-
-
Save manjeettahkur/131bb6bf2d3fe51c1add to your computer and use it in GitHub Desktop.
Description: | |
Given the triangle of consecutive odd numbers: | |
1 | |
3 5 | |
7 9 11 | |
13 15 17 19 | |
21 23 25 27 29 | |
... | |
function rowSumOddNumbers(n) { | |
return Math.pow(n, 3); | |
} | |
function rowSumOddNumbers(n) { | |
return n*n*n | |
} |
Thank you
@evan-kepantias the solution was derive by realizing what each row has in common, which turns out the row number is the cube root of the row's sum.
1 is the product of 111 = 1
8 is the product of 222 = 8
27 is the product of 333 = 27
The sum of any row of odd numbers is just the row number cubed.
that's smart!
I've been working more than 1 hour :D , thank you
the solution was derive by realizing what each row has in common, which turns out the row number is the cube root of the row's sum.
1 is the product of 1_1_1 = 1
8 is the product of 2_2_2 = 8
27 is the product of 3_3_3 = 27
The sum of any row of odd numbers is just the row number cubed.
that's bravoooo broo
pow(n, 3) is smart but here's what I've come up with:
def row_sum_odd_numbers(n):
S_n = int((n * (n + 1)) / 2)
m = S_n + 1
current_number = 1
counter = 0
new_list = []
while counter < m:
new_list.append(current_number)
current_number += 2
print(new_list)
counter += 1
new_list.pop()
new_list_reversed = new_list[::-1]
newest_list = []
newest_list += (new_list_reversed[0:n])
return sum(newest_list)
Nice kata thanks @AceTheCreator for the explanation, I might have never discovered the algorithm. It is 2 lines in SQL
select n*n*n "res"
from nums ;
Big thanks to @AceTheCreator for the solution of this problem!
U saved me aprox. 30 mins.
Thanks :)
I have a question: how do people come up with these solutions?
There is no possibility for regular developer to come up with it. It went from famous Italian mathematician who spent a lot of time to come up with similar things) And I think he had a lot of free time in that years)
Thanks for safe my time)
was it that simple? this is what i did: :D
def row_sum_odd_numbers(n):
firstNum = (n*(n-1))+1
list = [firstNum]
for x in range(n-1):
list.append(firstNum+2)
firstNum+=2
return sum(list)
def row_sum_odd_numbers(n):
return n **3
thank you
Wow, thank you I never thought about it like that. You needed to have seen me think hard about the possible logic.
Thanks :)
I have a question: how do people come up with these solutions?
Here is what i found on this topic:
sum of consequent M numbers is (M+1)M/2, so we may know how many numbers were below our ROW:
numbersBelow = ((n-1)(n))/2.
Now we may calculate first number in row:
firstNumberInRow = 2numbersBelow+1.
So, firstNumberInRow = nn-n+1 and last number in ROW is nn-n+1 + 2(n-1). Let assume that last number before row is x1 and last number in row is x2. It's known that 1+3+5+...+(2k-1) = kk. Sum in row must be x2x2 - x1x1. OUR x1 = (nn-n)/2 and x2 = (nn+n)/2. After some simplification: SUM = nn*n.
Nice kata thanks @AceTheCreator for the explanation, I might have never discovered the algorithm. It is 2 lines in SQL
select n*n*n "res" from nums ;
or in one line using javascript:
const rowSumOddNumbers = n => n ** 3;
Thanks :)
I have a question: how do people come up with these solutions?