AtCoder が提供しているABC(AtCoder Beginner Contest)281 のA問題をC++とPythonで解いてみました。ABC281は、2022年12月10日21:00に実施されました。
AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。
A問題 Count Down(Difficulty : 6)
問題はリンク先をご覧ください。
簡単なループを書く問題です。AtCoder Problems による Difficulty は、6 でした。
解答案
問題を解く方針を書きだします。
- N を読み込む。
- N から 0 までのループで以下を行う。
- ループカウンタを出力する。
C++ プログラム例(ABC281A)
ループカウンタがはっきりしているため for 文で実装しました。以下が、C++の実装例です。
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = n; i >= 0; --i) {
cout << i << endl;
}
return 0;
}
AC(Accepted=正しいプログラム)と判定されました。
Python プログラム例(ABC281A)
Python でも for 文を使います。range を第3引数まで指定して、減っていくループカウンタを作っています。
"""AtCoder Beginner Contest 281 A"""
n = int(input())
for i in range(n, -1, -1):
print(i)
こちらも「AC」と判定されました。
最後に
ABC272 A問題の公式解説で以下のように記されていました。
補足: これまで ABC の A 問題ではループを使わず解けるような問題を出題してきましたが、毎週出題し続けるには扱える問題の幅が狭すぎ、ループを避けるためにかえってアクロバティックなことを要求する状態になっていることから、簡単な場合でループを出題してみることにしました。
https://atcoder.jp/contests/abc272/editorial/4977
A問題で、ループが出題されるようになりました。ただし、上の補足に記載がされているようにプログラミング初心者に配慮して、初歩的な使い方で解けるようになっています。
引き続き ABC の問題を紹介していきます。