xc,yc,x,y,r1,r2,nの7つが標準入力で入力され以下の条件を満たすときyes,満たさない時にnoを表示するプログラムを下記の様に作成しました.
r1^2<=(x-xc)^2+(y-yc)^2<=r2^2
import java.util.*;
public class Main {
public static void main(String[] args) {
// 自分の得意な言語で
// Let's チャレンジ!!
Scanner sc = new Scanner(System.in);
int xc = sc.nextInt();
int yc= sc.nextInt();
int r1 = sc.nextInt();
int r2 = sc.nextInt();
int n = sc.nextInt();
for(int i=0;i<n;i++){
int x = sc.nextInt();
int y = sc.nextInt();
int n8=(((x-xc)^2+(y-yc)^2)-(r1)^2);
int n9=(((x-xc)^2+(y-yc)^2)-(r2)^2);
if(n8>=0 && n9<=0){
System.out.println("yes");
}else{
System.out.println("no");
}
}
}
}
この結果について(x,y,xc,yc,r1,r2)=(1,1,0,0,1,2)の時にyesと表示されるはずなのですがなぜかnoと表示されてしまいます。エラーメッセージ等も特になく,どこがいけないのか分かりません。ちなみに
(x,y,xc,yc,r1,r2)=(0,0,0,0,1,2),(4,2,0,0,1,2)の時にはしっかりnoと表示されました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。