Join Regular Classroom : Visit ClassroomTech

Coding Sample Questions | Part 3 | Codewindow.in

Problem Statement :

The problem solvers have found a new castle for coding and named it as Nik’s castle. These smart people were given a task to make the purchase of items at the castle easier by distributing various coins with different values. Rahul has come up with a solution that if we make coins category starting from $1 till the maximum price of the item present on castle, then we can purchase any item easily. He
added following example to prove his point. Let’s suppose the maximum price of an item is 5$ then we can make coins of {$1, $2, $3, $4, $5} to purchase any item ranging from $1 to $5.
Now Tej, being a keen observer suggested that we could actually minimize the number of coins required and gave
following distribution {$1, $2, $3}. According to him, any item can be purchased one time ranging from $1 to $5. Everyone was impressed with both of them. Your task is to help Tej your dear friend to come up with the minimum number of denominations for any arbitrary max price in castle.

Input Format:
First line contains an integer T denoting the number of test
cases. Next T lines contains an integer N denoting the
maximum price of the item present on Nik’s castle.

Output Format:
For each test case print a single line denoting the minimum
a number of denominations of coins required.

Constraints:
1<=T<=100
1<=N<=5000

Sample Input 1 :
2
10
5
Sample Output 1 :
4
3
Explanation :
According to Rahul {$1, $2, $3,… $10} must be distributed. But as per Tej only {$1, $2, $3, $4} coins are enough to purchase any item ranging from $1 to $10. Hence minimum is 4. Likewise denominations could also be {$1, $2, $3, $5}.
Hence answer is still 4.

Sample Input 2 :
3
1
5
7
Sample Output 2 :
1
3
3
Explanation :
According to Rahul {$1, $2, $3, $4, $5} must be distributed. But
as per Tej only {$1, $2, $3} coins are enough to purchase any
item ranging from $1 to $5. Hence minimum is 3. Likewise
denominations could also be {$1, $2, $4}. Hence answer is still
3.

Solution:

C

//www.codewindow.in
//start
#include<stdio.h>
int main(){
int n,test,i;
scanf("%d",&test);
for(i=0;i<test;i++)
{
    scanf("%d",&n);
    int x=0;
    while(pow(2,x)<=n)
    {
        x++;
    }
printf("%d\n",x);
}
return 0;
}

//end

JAVA

//www.codewindow.in
//start
import java.io.*;
public class Main
{
public static void main(String[] args)throws IOException
{
BufferedReader br=new BufferedReader(new
InputStreamReader(System.in));

int i;
int test=Integer.parseInt(br.readLine());

for(i=0;i<test;i++){
    
    int n=Integer.parseInt(br.readLine());
    int x=0;
    
    while(Math.pow(2,x)<=n){
    x++;
    }
    
System.out.println(x); 
    
    
}
}
}

//end

Python

#www.codewindow.in
#please follow the indentation as its a must in python programing

cases=int(input())
for i in range(1,cases+1):
    value=int(input())
    coincount = 0
    while value>=1:
        value=value//2
        coincount=coincount+1
    print (coincount)

#end

Follow Us

Also checkout