SHARE
SPREAD
HELP

The Tradition of Sharing

Help your friends and juniors by posting answers to the questions that you know. Also post questions that are not available.


To start with, Sr2Jr’s first step is to reduce the expenses related to education. To achieve this goal Sr2Jr organized the textbook’s question and answers. Sr2Jr is community based and need your support to fill the question and answers. The question and answers posted will be available free of cost to all.

 

#
Authors:
Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser
Chapter:
Java Primer
Exercise:
Exercises
Question:19 | ISBN:9781118771334 | Edition: 6

Question

Write a Java program that can take a positive integer greater than 2 as input and write out the number of times onemust repeatedly divide this number by 2 before getting a value less than 2.

TextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbookTextbook

Answer



package java_problems_datastructures;

import java.util.Scanner;

public class DivideByTwo {
	
    // this counter tracks the number of times we have divided by 2
	static int count = 1;
    
	// we will use recursion to find the value
	static int divideByTwo(int enteredValue) {
  
		// calling the method in a loop till we met the desired condition
		if (enteredValue / 2 >= 2) {
			divideByTwo(enteredValue / 2);
			count++;
		}
		return count;
	}

	public static void main(String args[]) {

		Scanner input = new Scanner(System.in);

		System.out.println("Please enter a value ");

		int value = input.nextInt();

		while (value <= 2) {
			System.out.println("please enter value greater than 2 ");
			value = input.nextInt();
		}
		System.out.println("number of times divide before getting less than two is : " + divideByTwo(value));

		input.close();

	}

}


Output:

Please enter a value 
1
please enter value greater than 2 
8
number of times divide before getting less than two is : 3

 

0 0

Discussions

Post the discussion to improve the above solution.