質問: お世話になります。 1≤A≤B≤10^18,1≤C,D≤10^9 であるときにコンソール上から数値を入力しようとしたのですが、 うまく各変数に入っていないようです。小さな値なら入るのですが、 大きくなると入りません。どのようにすれば、大きな値も入るでしょうか。 以下が書いたコードです。windows上で実行しております。 よろしくお願いいたします。 ``` #include using namespace std; int main(){ long A,B,C,D; cin >> A >> B >> C >> D; printf("%ld,%ld,%ld,%ld",A,B,C,D); return 0; } ```
回答: お使いのpcは何bitですか? Linuxだとlong型は10^18まで格納できますが、windowsだと32bit版の場合はlongの範囲は-2147483648 〜 2147483647となります。 詳しいことをは調べてみてください。 解決策として、long long型を使えばできると思います。