In: Computer Science
Nice Number Programming: Nice program ask user to enter three integers from keyboard (java console), the three integers represent left bound, right bound and arbitrary digit ‘m’, where left bound is less than right bound. Program should print all nice numbers in the given range that doesn’t contain digit 'm'. The number is nice if its every digit is larger than the sum of digits which are on the right side of that digit. For example 741 is a nice number since 4> 1, and 7> 4+1. with digit m=2 Write a complete program in Java that Call only One method (niceNumbers method) that will print all nice numbers excluding a given digit ‘m’ that also entered by user ? Input Sample : Enter Left bound: 740 Enter Right bound:850 Enter digit to exclude it:2 Output sample: Nice Numbers in Range Left=740, Right=850 with exclude digit m= 2 are: 740 741 750 751 760 810 830 831 840 841 843 850 Your method prototype is like this: public static void niceNumbers(int left, int right, int dight) { ...
package learning;
import java.util.*;
class Main {
public static void niceNumbers(int left,int right,int digit) {
// Traversing the range
for(int i=left ; i<= right ; ++i) {
// Flag to check correctness
boolean flag = true;
int sum=0,temp = i;
// Test loop where the value will be tested for for nice number
// If valuse fails any test then flag will become false and loop will break
while(temp!=0) {
int r = temp % 10;
if(r==digit) {
flag = false;
break;
}
if(r > sum || temp==i) {
sum=sum+r;
temp = temp/10;
}else {
flag = false;
break;
}
}
// If flag passes all tests then print i
if(flag) {
System.out.print(i + " ");
}
}
return;
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter Left Bound: ");
int left = input.nextInt();
System.out.print("Enter Right Bound: ");
int right = input.nextInt();
System.out.print("Enter digit to exclude it: ");
int digit = input.nextInt();
// Calling method
niceNumbers(left,right,digit);
}
}
OUTPUT:
Kindly go through the comments for better understanding of the code.