JavaScript: Find the number of times to replace a given number with the sum of its digits until it convert to a single digit number
JavaScript Basic: Exercise-105 with Solution
Replace Number with Digit Sum Until Single Digit
Write a JavaScript program to find the number of times to replace a given number with the sum of its digits. This is until it converts to a single-digit number.
Visual Presentation:
Sample Solution:
JavaScript Code:
// Function to calculate the sum of digits in a number
function digit_to_one(num) {
// Inner function to compute the sum of digits in a number
var digitSum = function(num) {
var digit_sum = 0; // Initialize the variable to store the sum of digits
while (num) { // Loop to extract digits and sum them
digit_sum += num % 10; // Add the last digit to the sum
num = Math.floor(num / 10); // Remove the last digit from the number
}
return digit_sum; // Return the sum of digits
};
var result = 0; // Initialize the counter for the number of steps
while (num >= 10) { // Loop until the number becomes a single digit
result += 1; // Increment the counter for each step
num = digitSum(num); // Get the sum of digits and assign it to the number
}
return result; // Return the count of steps required
}
// Example usage of the function
console.log(digit_to_one(123));
console.log(digit_to_one(156));
Output:
1 2
Live Demo:
See the Pen javascript-basic-exercise-105 by w3resource (@w3resource) on CodePen.
Flowchart:
ES6 Version:
// Function to calculate the sum of digits in a number
const digitSum = (num) => {
let digit_sum = 0; // Initialize sum of digits variable
while (num) { // Loop to calculate the sum of digits
digit_sum += num % 10; // Add the last digit to the sum
num = Math.floor(num / 10); // Remove the last digit from the number
}
return digit_sum; // Return the sum of digits
};
// Function to convert a number to one digit by finding the sum of its digits until it becomes a single digit
const digit_to_one = (num) => {
let result = 0; // Initialize count of steps to convert number to a single digit
while (num >= 10) { // Loop until the number becomes a single digit
result += 1; // Increment the step count
num = digitSum(num); // Calculate the sum of digits and assign it to the number
}
return result; // Return the count of steps taken
};
// Example usage of the function
console.log(digit_to_one(123));
console.log(digit_to_one(156));
Improve this sample solution and post your code through Disqus.
Previous: JavaScript program to find two elements of the array such that their absolute difference is not greater than a given integer but is as close to the said integer.
Next: JavaScript program to divide an integer by another integer as long as the result is an integer and return the result.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/javascript-exercises/javascript-basic-exercise-105.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics