2016-11-02 7 views
0

これは私が初めてこれを使用していて、配列に関して少し問題があります。ユーザーが入力する配列の値が連続的に二乗されているかどうかを確認する必要があります({2, 4, 16, 256}など)。 num [1] = num [0] * num [0]、num [2] = num [1] * num [1]などのようにチェックします。どんな助けもありがとう。アレイに入力した値が、アレイの継続中に2乗されるかどうかを確認するにはどうすればよいですか?

import java.util.Scanner; 

public class PS6Square { 
    public static void main (String [] args){ 

     Scanner scan = new Scanner(System.in); 
     System.out.println("How many values would you like to enter?"); 
     String input = scan.next(); 
     int array = Integer.parseInt(input); 
     int num[] = new int[array]; 
     int i = 0; 
     boolean result = false; 

     for(i = 0; i < num.length; i++) 
     { 
      System.out.print("Enter a value:\t"); 
      num[i] = scan.nextInt(); 
      if(num[i] == num[i] * num[i]) 
      { 
       result = true; 
      } 
     } 

     System.out.println("\nThe result is:\t" + result); 
    } 
} 
+0

可能な複製(http://stackoverflow.com/questions/295579/fastest-way-整数であるかどうかを判断するための平方根は整数である) – user2664856

答えて

0

この質問は既に入力されています。次回は検索機能を試してみてください。ここ

しかし、ソリューションです:[整数の平方根が整数であるかどうかを判断するための最速の方法]の

double sqrt = Math.sqrt(int_to_test); 
int x = (int) sqrt; 
if(Math.pow(sqrt,2) == Math.pow(x,2)){ 
//it is a perfect square 
} 
関連する問題