w3resource

C Exercises: Count the numbers without digit 7, from 1 to a given number

C Programming Mathematics: Exercise-22 with Solution

Write a C program to count the numbers without the digit 7, from 1 to a given number.

Example 1:
Input: n = 10
Output: 9
Example 2:
Input: n = 687
Output: 555

Visual Presentation:

C Exercises: Count the numbers without digit 7, from 1 to a given number

Sample Solution:

C Code:

#include <stdio.h>
#include <stdlib.h>

// Function to count the numbers without digit 7
int count_nums_not_7(int num) { 
    if (num < 7) 
        return num; // If the number is less than 7, return the number itself
    if (num >= 7 && num < 10) 
        return num - 1; // If the number is 7 or 8 or 9, return num - 1

    int r = 1; 
    while (num / r > 9) 
        r = r * 10; // Find the divisor 'r' to split the number

    int m = num / r; // Extract the most significant digit of the number

    if (m != 7) 
        return count_nums_not_7(m) * count_nums_not_7(r - 1) + count_nums_not_7(m) + count_nums_not_7(num % r); 
    else
        return count_nums_not_7(m * r - 1); 
}      

// Main function
int main(void) { 
    int n = 10;  
    if (n > 0)
        printf("Count the numbers without digit 7, from 1 to %d : %d", n, count_nums_not_7(n));

    n = 687;  
    if (n > 0)
        printf("\nCount the numbers without digit 7, from 1 to %d : %d", n, count_nums_not_7(n));

    return 0; // End of the main function
}

Sample Output:

Count the numbers without digit 7, from 1 to 10 : 9
Count the numbers without digit 7, from 1 to 687 : 555

Flowchart:

Flowchart: Count the numbers without digit 7, from 1 to a given number.

C Programming Code Editor:

Improve this sample solution and post your code through Disqus.

Previous: Write a C program to calculate and print average (or mean) of the stream of given numbers.
Next: Write a C program to find next smallest palindrome of a given number.

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://www.w3resource.com/c-programming-exercises/math/c-math-exercise-22.php