【競プロ精進ログ】ABC168-A

zuka

ABCをコツコツ解いていきます。

本記事は,管理人の競技プロ精進日記としてログを取ったものです。モチベーションを爆上げするために,積極的にアウトプットしていく作戦です。

これから競技プログラミングを始めようと考えている人や,なんとなく敷居が高いと感じている人の参考になれば嬉しく思います。その他の記事は以下をご覧ください。

目次

本記事の概要

Atcoderで初心者用のコンテストとして開催されているAtcoder Beginner Contest(通称ABC)を解いていくものです。今回はABC168-A「∴ (Therefore)」です。

ポイント

switch文の良い練習問題です。if文で書くと見通しが悪くなるような大量の条件分岐でも,switch文を使えば見通しよく記述することができます。

// switch文
switch(条件式の左辺){
  case 条件式の右辺 :
    処理
    break; // breakがないと下のケースまで調べてしまう
   ...
  default: // どのcaseにも一致しないときはdefaultが実行される
    処理
    break;
}
おさえるべき内容

 switch文の使い方

実装

#include <bits/stdc++.h>
#define _GLIBCXX_DEBUG
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define repi(i, a, b) for (int i = (int)(a); i < (int)(b); i++)
using namespace std;
typedef long long ll;

string S;

int main(){
  cin >> S;
  // 文字列Sの一番最後のインデックスは「S.size() - 1」
  switch (S[S.size() - 1]){
    case '2':
    case '4':
    case '5':
    case '7':
    case '9':
      cout << "hon" << endl;
      break;
    case '0':
    case '1':
    case '6':
    case '8':
      cout << "pon" << endl;
      break;
    case '3':
      cout << "bon" << endl;
      break;
  }
}
よかったらシェアしてね!

コメント

コメントする

目次
閉じる