AtCoder

ABC288 A問題(Many A+B Problems)を解く

AtCoder_ABC288_A

AtCoder が提供しているABC(AtCoder Beginner Contest)288 のA問題をC++とPythonで解いてみました。ABC288は、2023年2月4日21:00に実施されました。

AtCoder の紹介はこちらに、プログラミングの方針はこちらに記事があります。

A問題 Many A+B Problems(Difficulty : 6)

問題はリンク先をご覧ください。

ABC288 A問題 Many A+B Problems

足し算の結果を繰り返し表示します。AtCoder Problems による Difficulty は 6 でした。

解答案

問題を解く方針を書きだします。

  • N を読み込む。
  • N 回以下を行う。
    • Ai と Bi を読み込む。
    • Ai と Bi の和を出力する。

    C++ プログラム例(ABC288A)

    C++(およびC言語)の整数型の変数には、使える範囲があります。今回の問題の場合、

    $$-10^9 \leqq A_i,\;B_i \leqq 10^9$$

    という制約があるため、和の範囲は以下となります。

    $$-2 \times 10^9 \leqq A_i + B_i \leqq 2 \times 10^9$$

    一方、32ビット符号付き整数の範囲は、以下となります。

    $$-2147483648 \; ~ \; 2147483647$$

    今回の問題は32ビット符号付き整数(int)を使ってよいことが分かります。なお、C++(C言語)の整数型の大きさについては、過去に記事にしました。詳しく知りたい方は、「C言語:整数の大きさのまとめ」をご覧ください。

    以下が、C++プログラムとなります。

    #include <bits/stdc++.h>
    using namespace std;
    
    int main()
    {
    	int n;
    	cin >> n;
    	for (int i = 0; i < n; ++i) {
    		int a, b;
    		cin >> a >> b;
    		cout << a + b << endl;
    	}
    
    	return 0;
    }

    AC(Accepted=正しいプログラム)と判定されました。

    Python プログラム例(ABC288A)

    Python は、整数の大きさに制限がありません。このため、C++ にあった整数型の大きさ(大きな整数や小さな整数)を意識する必要がありません。

    """AtCoder Beginner Contest 288 A"""
    n = int(input())
    for _ in range(n):
        a, b = map(int, input().split())
        print(a + b)

    こちらも「AC」と判定されました。

    最後に

    問題で問われていることは簡単でしたが、整数として扱える範囲を考えるきっかけになりました。

    ABC288 について、引き続き、C問題まで紹介します。

    COMMENT

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    CAPTCHA