質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

1回答

280閲覧

オーバーフロー後の動作について

tokutok

総合スコア17

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2018/12/05 12:39

下のコードのsolve(long num, のところをint numにすると
888888888(9個)
と入力すると
0
7
77
777
7777
77777
777777
7777777
77777777
777777777
-812156815
468366449
といった出力がされます。
オーバーフロー後の出力は下のプログラムに沿っていますか?
つまり、-812156815 は n = 888888888 より小さいので10倍されて7足されると思っています。

c++

1#include<iostream> 2using namespace std; 3int n, ans = 0; 4void solve(long num, bool s, bool t, bool r) { 5 cout << num << endl; 6 if (num > n) return; 7 if (s && t && r) ans++; 8 solve(num * 10 + 7, true, t, r); 9 solve(num * 10 + 5, s, true, r); 10 solve(num * 10 + 3, s, t, true); 11} 12int main() { 13 cin >> n; 14 solve(0, false, false, false); 15 cout << ans << endl; 16}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

int は4バイトの数値なんで、それを踏まえれば自分で計算するのも難しくないのでやってみればどうでしょう
Windowsの電卓で、プログラマの設定にすればやってくれますぜ

投稿2018/12/05 14:07

y_waiwai

総合スコア87719

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問