I was doing codewars Super Coordinate Sums task.
def super_sum(d, n):
return int((n - 1) * d / 2) * n ** d
This is code that i wrote. It works for like 80% of test cases, but not for those for whom d is odd and n is even. I understand that it happens because of int rounding .5, but i don't know how to fix it. If i add type casting after multiplying:
def super_sum(d, n):
return int((n - 1) * d / 2 * n ** d)
then float will round my answer, for example for case d = 129, n = 48 correct answer is
23002614121650859314295390023813765770686356346056100481311369183953951296168089825445052658029739568132862213799732717600222459651283221457666925117931656542314825567044097809172099767486211518264294073783841553301635072
but this func returns
23002614121650859002030052273414603134163824126554165855078156468894052419381420649026479480486503703631607262290068194388824847849384465650476706583375518509855234415574540876562931392494985340953010221803338452965523456
So can someone help me with it? Thank you in advance.
Do // 2
last.
def super_sum(d, n):
return (n - 1) * d * n ** d // 2