3-B1. int128
入力からint型の非負整数値を1つ受け取り、倍して出力しよう。
入力/出力例
例1
入力
5出力
50000000000000000000000000ヒント
ヒント1
この問題では出力は常に以上となるため、通常のint型を使うとオーバーフローしてしまいます。数値ではなく、別の方法で扱うことはできないでしょうか...?
解答例
解答例1
クリックして展開
cpp
#include <iostream>
using namespace std;
int main() {
int input_number;
cin >> input_number;
// 文字列として必要な0を追加することでオーバーフローを回避
cout << input_number << "0000000000000000000000000" << endl;
}実は...
クリックして展開
Clang++やG++などの一部のコンパイラはint128型(__int128)という通常のint型より大きい値を扱うことが出来る型に対応しているため、今回の問題を掛け算として解くことができる。