/*
Function: countDigitFrequency
Purpose: Counts how many times each digit (0–9) appears in a number.
Parameters:
- n: the number whose digits we want to count
- freq: an array of size 10 that stores the frequency of each digit
freq[0] = count of digit '0'
freq[1] = count of digit '1'
...
freq[9] = count of digit '9'
Explanation:
We repeatedly extract the last digit using n % 10,
then remove that digit using n / 10.
*/
function countDigitFrequency(int $n, array &$freq): void {
// Process each digit of the number
while ($n > 0) {
$digit = $n % 10; // extract last digit
$freq[$digit]++; // increase its frequency
$n = intdiv($n, 10); // remove last digit
}
}
$n = 79712622; // the number we want to analyze
$freq = array_fill(0, 10, 0); // array to store digit frequencies
// Call the function to count digit frequencies
countDigitFrequency($n, $freq);
// Display the result
echo "Digit frequencies in $n:\n\n";
for ($i = 0; $i < 10; $i++) {
if ($freq[$i] != 0) {
echo "Digit $i occurs {$freq[$i]} times\n";
}
}
/*
run:
Digit frequencies in 79712622:
Digit 1 occurs 1 times
Digit 2 occurs 3 times
Digit 6 occurs 1 times
Digit 7 occurs 2 times
Digit 9 occurs 1 times
*/