数据类型:长

时间:2017-11-22 05:42:14

标签: java long-integer longtext

所以这是我写的代码:粗体不会打印出我要打印的内容,如果输入了长数据类型,那么短语“可以长篇大论”。

我尝试使用Math.pow,但该功能不起作用,因为这是双数据类型。任何建议!

import java.util.*;
import http://java.io.*;

public class HackerRank {
    public static void main(String[] args){
        Scanner in = new Scanner(System Resources and Information.);
        int n = in.nextInt();
        for(int t = 0; t < n; t++){
            try {
                long a = in.nextInt();
                if(a > -128 && a <= 127){
                    System.out.println(a + " can be fitted in:\n*byte");
                    System.out.println("*short");
                    System.out.println("*int");
                    System.out.println("*long");
                } else if(a > -32768 && a <= 32767) {
                    System.out.println(a + " can be fitted in:\n*short");
                    System.out.println("*int");
                    System.out.println("*long");
                } else if(a > Math.pow(-2, 31) && a < Math.pow(2, 31)) {
                    System.out.println(a + " can be fitted in:\n*int");
                    System.out.println("*long");
                } else {
                    if (a >= -Math.pow(2, 63) && a < Math.pow(2, 63)-1); 
                    System.out.println(a + " can be fitted in:\n*long");
                }
            } catch (Exception e){
                System.out.println(in.next() + " can't be fitted anywhere.");
            }
        }
    }
}

2 个答案:

答案 0 :(得分:0)

使用double代替long,因为double类型变量无法存储在long中。

double a = in.nextDouble();

答案 1 :(得分:0)

不要自己计算结果,而是尝试使用以下常量:

Integer.MIN_VALUE
Integer.MAX_VALUE
Long.MIN_VALUE
Long.MAX_VALUE