KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Scroll down to see latest edit, I left all this text here just so that I don't invalidate the replies this question has received so far! I have the following brain teaser I'd like to get a solution for, I have tried to solve this but since I'm not mathematically that much above average ( that is, I think I'm very close to average ) I can't seem wrap my head around this. The problem: Given number x should be split to a serie of multipliers , where each multiplier <= y , y being a constant like 10 or 16 or whatever. In the serie (technically an array of integers ) the last number should be added instead of multiplied to be able to convert the multipliers back to original number. As an example, lets assume x=29 and y=10 . In this case the expected array would be {10,2,9} meaning 10*2+9 . However if y=5 , it'd be {5,5,4} meaning 5*5+4 or if y=3 , it'd be {3,3,3,2} which would then be 3*3*3+2 . I tried to solve this by doing something like this: while x >= y , store y to multipliers , then x = x - y when x < y , store x to multipliers Obviously this didn't work, I also tried to store the "leftover" part separately and add that after everything else but that didn't work either. I believe my main problem is that I try to think this in a way too complex manner while the solution is blatantly obvious and simple. To reiterate, these are the limits this algorithm should have: has to work with 64bit longs has to return an array of 32bit integers (...well, shorts are OK too) while support for signed numbers (both + and -) would be nice, if it helps th
Tags (comma-separated)
Save Edits
Cancel