A 問題よりは少しレベルアップする!
問題概要
2 つの正の整数 が与えられる。
が何桁になるかを求めよ。
制約
解法
まず、 の値を計算しましょう。その値を仮に
としましょう。
残る問題は、この整数値 が何桁なのかを求めることです。
方法 (1):大きさを見る
1 つの方法は、大きさを見ることです。「制約」を見ると、 とあります。これより、
となります。つまり、整数値 は最大でも 3 桁以下だということがわかります。よって、
if
文を用いて、次のように考えれば良いでしょう。
のとき:1 桁である
のとき:2 桁である
のとき:3 桁である
コード
#include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; int x = A + B; if (x <= 9) cout << 1 << endl; else if (x <= 99) cout << 2 << endl; else if (x <= 999) cout << 3 << endl; }
方法 (2):文字列に変換して、そのサイズを見る
もう 1 つの方法は、整数値 を文字列に変換することです。たとえば、413 という整数値を文字列に変換すると、文字列 "413" となります。
C++ では、関数 to_string(x)
を用いることで、整数値 x
を文字列に変換できます。
コード
#include <bits/stdc++.h> using namespace std; int main() { int A, B; cin >> A >> B; int x = A + B; cout << to_string(x).size() << endl; }