w3resource

PHP Challenges: Add the digits of a positive integer repeatedly until the result has a single digit

PHP Challenges - 1: Exercise-12 with Solution

Write a PHP program to add the digits of a positive integer repeatedly until the result has a single digit.

Input : 48

For example given number is 59, the result will be 5.
Step 1: 5 + 9 = 14
Step 2: 1 + 4 = 5

Explanation :

PHP: Add the digits of a positive integer repeatedly until the result has single digit

Sample Solution :

PHP Code :

<?php
// Function to add digits of a number until a single digit is obtained
function add_digits($num)
{
    // Check if the number is positive
    if ($num > 0)
    {
        // If positive, return the sum of digits modulo 9 plus 1
        return ($num - 1) % 9 + 1;
    }
    else
    {
        // If negative or zero, return 0
        return 0;
    }
}

// Test the add_digits function with different inputs and print the results
print_r(add_digits(48) . "\n");
print_r(add_digits(59) . "\n");
?>

Explanation:

Here is a brief explanation of the above PHP code:

  • Function definition:
    • The code defines a function named "add_digits()" which calculates the digital root of a number. The digital root is obtained by repeatedly adding the digits of the number until a single-digit number is obtained.
  • Inside the function:
    • It checks if the input number '$num' is greater than 0.
    • If the number is positive, it returns the result of the formula ($num - 1) % 9 + 1. This formula calculates the digital root by adding the digits of the number and performing modulo 9 arithmetic.
    • If the number is non-positive (i.e., negative or zero), it returns 0.
  • Function Call & Testing:
    • The "add_digits()" function is called twice with different input numbers (48 and 59).
    • he results of the function calls are printed using "print_r()", which displays the digital roots of the input numbers.

Sample Output:

3                                                           
5  

Flowchart:

PHP Flowchart: Add the digits of a positive integer repeatedly until the result has single digit

PHP Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a PHP program to find the single element appears once in an array where every element appears twice except for one.
Next: Write a PHP program to reverse the digits of an integer.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

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://w3resource.com/php-exercises/challenges/1/php-challenges-1-exercise-12.php