마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

이 코드 원리 아시는분?

0 추천

일정한 수 범위 내에서 완전제곱수의 갯수를 세는 건데.. 

코드 보시면 a와 b에서 b에 루트값 버림,  a에 루트값 올림 

한 값의  차를 구하는데 이게 원리가 어떻게 되나요? 

 

// An Efficient method to count squares between
// a and b
class CountSquares
{
    double countSquares(int a,int b)
    {
        return (Math.floor(Math.sqrt(b)) -
                Math.ceil(Math.sqrt(a)) + 1);
    }
}
 
// Driver Code
public class PerfectSquares
{
    public static void main(String[] args)
    {
        int a=9, b=25;
        CountSquares obj=new CountSquares();
        System.out.print("Count of squares is " +
                         (int)obj.countSquares(a, b));
    }
}

 

노예의집 (23,370 포인트) 님이 2016년 6월 20일 질문

1개의 답변

0 추천
0부터 B까지의 완전제곱수 - 0부터 A까지의 완전 제곱수 + 1(A)
익명사용자 님이 2016년 6월 20일 답변
sqrt(b) 와 sqrt(a)사의 정수의 갯수를 구하는거죠..
...