Official

A - QQ solver Editorial by KoD


与えられた文字列から \(2\) つの整数を取り出し、それらの積を出力すればよいです。\(2\) 種類の言語での解答例を以下に説明します。

C++ での実装

char 型を用いると一文字ずつ入力を受け取ることができます。\(3\) 文字受け取ると、\(1\) 文字目と \(3\) 文字目が与えられた整数を表します。

char 型の数字と int 型の数値は異なるものであることに注意してください。そのため、char 型で受け取った文字どうしをそのまま掛けて出力しても正解することはできません。一度 char 型から int 型などに変換する必要があります。

char 型の文字は \(1\) バイトのビット列で表現されており、そのエンコード方法には ASCII や Unicode などと呼ばれる規格が存在します。例えば ASCII では、文字としての 0\(48\) という数値が対応しています。多くの規格で 0 \(, \dots, \) 9 は連番になっているので、c という変数が char 型の数字を表しているとき、c - '0' はその内部表現の整数どうしの差、すなわち c'0' よりいくつ大きいかを表します。これにより、cint 型の数値に変換することができます。

以上をまとめると、次に示す実装例のようになります。

#include <iostream>
using namespace std;

int main() {
  char a, x, b;
  cin >> a >> x >> b;
  cout << (int)(a - '0') * (int)(b - '0') << '\n';
}

Python での実装

input() で入力を文字列として受け取り、split() によって文字列を x の位置によって区切ります。それらに int() 関数を適用することで文字列から数値型に変換することで、\(2\) つの整数を受け取ることができます。

a, b = map(int, input().split('x'))
print(a * b);

posted:
last update: