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
Pictorial Presentation:

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:

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.
- Weekly Trends
- Python Interview Questions and Answers: Comprehensive Guide
- Scala Exercises, Practice, Solution
- Kotlin Exercises practice with solution
- MongoDB Exercises, Practice, Solution
- SQL Exercises, Practice, Solution - JOINS
- Java Basic Programming Exercises
- SQL Subqueries
- Adventureworks Database Exercises
- C# Sharp Basic Exercises
- SQL COUNT() with distinct
- JavaScript String Exercises
- JavaScript HTML Form Validation
- Java Collection Exercises
- SQL COUNT() function
- SQL Inner Join