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'
よりいくつ大きいかを表します。これにより、c
を int
型の数値に変換することができます。
以上をまとめると、次に示す実装例のようになります。
#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: