Advertisement
vovnit

Untitled

Jan 8th, 2020
426
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 0.61 KB | None | 0 0
  1. fun getItem(num: Int): Int = 1 + num * 2
  2.  
  3. fun getRowRange(num: Int): IntProgression {
  4.     return ((num - 1) * (num) / 2) until (num * (num + 1) / 2)
  5. }
  6.  
  7. fun getRowValueRange(num: Int): IntProgression =
  8.     getRowRange(num).let { getItem(it.first)..getItem(it.last) step 2 }
  9.  
  10.  
  11. fun getRowSum(num: Int): Int =
  12.     getRowValueRange(num).let {
  13.         // a_1 + a_n       a_n - a_1
  14.         // ---------  *  ( --------- + 1 )
  15.         //     2           a_2 - a_1
  16.         ((it.first + it.last) / 2) * ((it.last - it.first) / (it.first + it.step - it.first) + 1)
  17.     }
  18.  
  19. fun main() {
  20.     println(getRowSum(2))
  21. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement