Please note, this is a STATIC archive of website www.w3resource.com from 19 Jul 2022, cach3.com does not collect or store any user information, there is no "phishing" involved.
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 digit 7, from 1 to a given number.

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

Pictorial 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>
 
int count_nums_not_7(int num) 
    { 
        if (num < 7) 
            return num; 
        if (num >= 7 && num < 10) 
            return num-1; 
 
        int r = 1; 
        while (num/r > 9) 
            r = r*10; 
  
        int m = num/r; 
   
        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); 
    }      
     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));	
     }

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.



C Programming: Tips of the Day

Static variable inside of a function in C

The scope of variable is where the variable name can be seen. Here, x is visible only inside function foo().

The lifetime of a variable is the period over which it exists. If x were defined without the keyword static, the lifetime would be from the entry into foo() to the return from foo(); so it would be re-initialized to 5 on every call.

The keyword static acts to extend the lifetime of a variable to the lifetime of the programme; e.g. initialization occurs once and once only and then the variable retains its value - whatever it has come to be - over all future calls to foo().

Ref : https://bit.ly/3fOq7XP