問題005

1000以下の3つの正の整数を入力し、それぞれの長さを3辺とする三角形が直角三角形である場合にはYES、違う場合にはNOと出力して終了するプログラムを作成してください。

入力

辺1(整数) 辺2(整数) 辺3(整数)

出力

YESまたはNO

入力例

4
3
5

出力例

YES

考え方

ピタゴラスの定理より、辺a,b,c(cは斜辺)の関係がa2+b2=c2ならば、直角三角形です。
斜辺が辺1の場合、辺2の場合、辺3の場合、を調べてどれかで成立すれば、直角三角形です。
ORを使いましょう。



//
//A005.java
//

import java.io.*;

public class A005{
    public static void main(String[] args)throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        //データ入力
        int hen1=Integer.parseInt(br.readLine());
        int hen2=Integer.parseInt(br.readLine());
        int hen3=Integer.parseInt(br.readLine());
        //a*a+b*b=c*cなら直角三角形
        if(
            hen1*hen1+hen2*hen2==hen3*hen3 ||
            hen2*hen2+hen3*hen3==hen1*hen1 ||
            hen3*hen3+hen1*hen1==hen2*hen2
        ){
            System.out.println("YES");
        }else{
            System.out.println("NO");
        }
    }
}

正しくゲームをするページ>パソコン甲子園攻略>ココ