公式

A - Nine 解説 by PCTprobability


AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。


この問題では、入力を受け取ること、そして \(A\) が書かれたマスと \(B\) が書かれたマスが左右に隣り合っているかを判定してその結果を出力することが求められます。

入力を受け取るのは、各言語に用意されている整数型を用いて受け取ればよいです。例えば、C++ ならば以下のように書きます。

#include<bits/stdc++.h>
using namespace std;
int main(){
  int a,b;
  cin>>a>>b;

さて、\(A\) が書かれたマスと \(B\) が書かれたマスが左右に隣り合っているかを判定します。ここで、左右に隣り合っているような \(A,B\) の組の個数は \(A<B\) であることに注意すると \(6\) 個しかないため、以下のように書くことが出来ます。

  bool answer=false;
  if(a==1&&b==2) answer=true;
  if(a==2&&b==3) answer=true;
  if(a==4&&b==5) answer=true;
  if(a==5&&b==6) answer=true;
  if(a==7&&b==8) answer=true;
  if(a==8&&b==9) answer=true;

\(A\) が書かれたマスと \(B\) が書かれたマスが左右に隣り合っているかが分かったので、あとはその結果を出力しましょう。隣り合っているならば Yes、隣り合っていないならば No を出力します。

  if(answer) cout<<"Yes"<<endl;
  else cout<<"No"<<endl;
}

上記のプログラムを全てつなげることでこの問題を解くことが出来ます。

また、少し考えると \(A\) が書かれたマスと \(B\) が書かれたマスが左右に隣り合っているかは \(A<B\) であることに注意すると、\(A\)\(3\) で割りきれず、かつ \(A+1=B\) が成り立つときとなるので以下のように簡潔に書くことも可能です。

#include<bits/stdc++.h>
using namespace std;
int main(){
  int a,b;
  cin>>a>>b;
  if(a%3!=0&&a+1==b) cout<<"Yes"<<endl;
  else cout<<"No"<<endl;
}

投稿日時:
最終更新: