2016-11-02 1 views
0

이것은 처음 사용하는데 배열에 약간의 문제가 있습니다. 사용자가 입력 한 배열의 값이 {2, 4, 16, 256}과 같이 지속적으로 제곱인지 확인해야합니다. num [1] = num [0] * num [0], num [2] = num [1] * num [1] 등의 확인. 어떤 도움을 주시면 감사하겠습니다.배열에 입력 한 값이 배열이 계속되면 제곱되는지 확인하려면 어떻게합니까?

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 
} 
관련 문제