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:
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:
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.
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/c-programming-exercises/math/c-math-exercise-22.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics