Given a 4-digit integer to the function, calculate the number of attempts until it reaches kaprekar's constant i.e. 6174
Few Examples
KaprekarsConstant(8) // 6KaprekarsConstant(1324) // 3KaprekarsConstant(3322) // 4
| var numOfAttempts = 0; | |
| function addRemainingZeros(number) { | |
| var remaining = 4 - number.length; | |
| for(var i = 0; i < remaining; i++) number += '0'; | |
| return number; | |
| } | |
| function KaprekarsConstant(num) { | |
| var numAsString = num + ''; // convert integer to string | |
| if (numAsString.length < 4) { | |
| numAsString = addRemainingZeros(numAsString); | |
| } | |
| numOfAttempts += 1; | |
| var aesc = parseInt(numAsString.split('').sort(function(a, b) { return a - b; }).join('')); | |
| var desc = parseInt(numAsString.split('').sort(function(a, b) { return b - a; }).join('')); | |
| var substract = desc > aesc ? desc - aesc : aesc - desc; | |
| return substract === 6174 ? countOfAttempts : KaprekarsConstant(substract); | |
| } |