Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function getDist(num) {
- let sqrt = Math.ceil(Math.sqrt(num));
- let sideLengthOfSq = (sqrt % 2 === 0 ? sqrt + 1 : sqrt);
- let highestNumInSq = sideLengthOfSq * sideLengthOfSq;
- let targetDistFromCorner = (highestNumInSq - num) % (sideLengthOfSq - 1);
- let targetDistFromSideCenter = Math.abs(targetDistFromCorner - Math.floor(sideLengthOfSq/2));
- const closestDistFromSq = (sideLengthOfSq - 1) / 2;
- return closestDistFromSq + targetDistFromSideCenter;
- }
Add Comment
Please, Sign In to add comment