LoginSignup
0
0

More than 3 years have passed since last update.

AtCoder Beginner Contest 174 A問題「Air Conditioner」解説(C++,Python,Java)

Last updated at Posted at 2020-08-11

AtCoder Beginner Contest 174 A問題「Air Conditioner」の解説を行います。
問題URL : https://atcoder.jp/contests/abc174/tasks/abc174_a

問題概要:

現在の室温$X$[単位:度]が与えられる。

室温が$30$度以上ならば冷房の電源を入れる。
冷房を入れるかどうかを判定せよ。

制約:

・$-40 \leq X \leq 40$
・$X$は整数

解説:

プログラミングの中で利用頻度がかなり多い、「条件分岐」の問題です。

今回は$30 \leq X $であるかの条件分岐を行う問題でした。

さて、問題に取り組む前に、
制約が小さいため、以下のようなコードを考えた方はいますか??

A.py
X = int(input())
if (X == -40):
  print("No")
elif (X == -39):
  print("No")
elif (X == -38):
  print("No")
#この後X == 40まで条件分岐を行う

制約上、$-40 \leq \ X \leq 40$というものがあるのでおよそ160行書くことでACすることも出来るのですが、競技プログラミングでは「コードを正確に書くまでの速さ」も求められるのでこの書き方ではあまりよくありません。

A2.py
X = int(input())
if (30<=X):
  print("Yes")
else:
#(X < 30)
  print("No")

このように書くと
・$30 \leq X$であるときに"Yes"と出力
・$X < 30 ( X \leq 29)$であるときに"No"と出力
という、2条件のみの条件分岐によって、A.pyのようなコードと同じ処理を行うプログラムを書くことが出来ます。

以下、C++14, Javaでの解答例です。(上のコードはPythonでの解答例です)

C++での解答例
A.cpp
#include<bits/stdc++.h>
using namespace std;
int main(){
  int x;
  cin >> x;
  if (30 <= x){
    cout << "Yes" << endl;
  }else{
    cout << "No" << endl;
  }
}

(改行を忘れないこと!!)


Javaでの解答例
A.java
import java.util.Scanner;
public class main(){
  public static void (String[] args){
    Scanner scan = new Scanner(System.in);
    int x = scan.nextInt();
    if (30 <= x){
      System.out.println("Yes");
    }else{
      System.out.println("No");
    }
  }
}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0