w3resource

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

Java Math Exercises: Exercise-18 with Solution

Write a Java program to count numbers without 7 from 1 to a given number.

Sample Solution:

Java Code:

import java.util.*;
class solution { 
    static 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); 
    } 
  
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.print("Input a number: ");
        int num = scan.nextInt();
		if (num>0)
		System.out.println("Count the numbers without digit 7, from 1 to "+num+": "+count_nums_not_7(num));		
		}
}

Sample Output:

 Input a number:  15
Count the numbers without digit 7, from 1 to 15: 14

Flowchart:

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

Java Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Java program to calculate and print average of the stream of given numbers.
Next: Write a Java program to generate a magic square of order n.

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://w3resource.com/java-exercises/math/java-math-exercise-18.php