Saturday 23 March 2019

Java Datatypes:- HackerRank Solution in java

Problem:-

Java has 8 primitive data types; char, boolean, byte, short, int, long, float, and double. For this exercise, we'll work with the primitives used to hold integer values (byte, short, int, and long):
  • byte is an 8-bit signed integer.
  • short is a 16-bit signed integer.
  • An int is a 32-bit signed integer.
  • long is a 64-bit signed integer.
Given an input integer, you must determine which primitive data types are capable of properly storing that input.
To get you started, a portion of the solution is provided for you in the editor.
Input Format
The first line contains an integer, , denoting the number of test cases. 
Each test case, , is comprised of a single line with an integer, , which can be arbitrarily large or small.
Output Format
For each input variable  and appropriate primitive , you must determine if the given primitives are capable of storing it. If yes, then print:
n can be fitted in:
* dataType
If there is more than one appropriate data type, print each one on its own line and order them by size (i.e.: ).
If the number cannot be stored in one of the four aforementioned primitives, print the line:
n can't be fitted anywhere.
Sample Input
5
-150
150000
1500000000
213333333333333333333333333333333333
-100000000000000
Sample Output
-150 can be fitted in:
* short
* int
* long
150000 can be fitted in:
* int
* long
1500000000 can be fitted in:
* int
* long
213333333333333333333333333333333333 can't be fitted anywhere.
-100000000000000 can be fitted in:
* long
Explanation
 can be stored in a short, an int, or a long.
 is very large and is outside of the allowable range of values for the primitive data types discussed in this problem.
Solution:-
import java.util.*;
import java.io.*;



class Solution{
public static void main(String []argh)
{



Scanner sc = new Scanner(System.in);
int t=sc.nextInt();

for(int i=0;i<t;i++)
{

try
{
long x=sc.nextLong();
System.out.println(x+" can be fitted in:");
if(x>=-128 && x<=127)System.out.println("* byte");
if(x>=-32768 && x<=32767)System.out.println("* short");
if(x>=-2147483648 && x<= 2147483647)System.out.println("* int");
if(x>=-9223372036854775808L && x<= 9223372036854775807L)System.out.println("* long");
}
catch(Exception e)
{
System.out.println(sc.next()+" can't be fitted anywhere.");
}

}
}
}



12 comments:

  1. It will throw an error that the long number is too long

    ReplyDelete
    Replies
    1. just add import java.math.*; u will get right answer

      Delete
  2. Use Float if its give too long eroor:
    if(x>=-9223372036854775808F && x<= 9223372036854775807F)System.out.println("* long");

    ReplyDelete
    Replies
    1. Thank you that helped.

      Delete
    2. if(x>=-9223372036854775808L && x<= 9223372036854775807L)System.out.println("* long");

      Delete
  3. import java.util.*;
    import java.io.*;



    class Solution
    {
    public static void main(String []argh)
    {



    Scanner sc = new Scanner(System.in);
    int t=sc.nextInt();

    for(int i=0;i=-128 && x<=127)System.out.println("* byte");
    int count=0;
    x=Math.abs(j);
    while(x>0)
    {
    count++;
    x=x/10;
    }
    x=k;
    if(count>0&&count<=3)
    {
    System.out.println("* short");
    System.out.println("* int");
    System.out.println("* long");
    }
    if(count>=6&&count<=10)
    {

    System.out.println("* int");
    System.out.println("* long");
    }
    if(count>10&&count<=16)
    {
    System.out.println("* long");
    }
    if(count>16)
    {
    throw new Exception(" can't be fitted anywhere.");
    }
    }

    catch(Exception e)
    {
    System.out.println(sc.next()+" can't be fitted anywhere.");
    }

    }
    }
    }




    ReplyDelete

Error While embed the video in Your website page

Error:- Refused to display '<URL>' in a frame because it set 'X-Frame-Options' to 'sameorigin Solution:- if ...