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

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

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

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

Q&A

解決済

1回答

612閲覧

std::vectorについて

Y.R.T

総合スコア42

C++

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

0グッド

0クリップ

投稿2020/08/12 07:05

編集2020/08/12 07:20

下記構文の
if (result.first != d.start || result.second != d.steps)
のd.stepsはどういう意味ですか?

std::pair<unsigned long long, long> longest_collatz(unsigned long long const limit) { long length = 0; unsigned long long number = 0; std::vector<int> cache(limit + 1, 0); for (unsigned long long i = 2; i <= limit; i++) { auto n = i; long steps = 0; while (n != 1 && n >= i) { if ((n % 2) == 0) n = n / 2; else n = n * 3 + 1; steps++; } cache[i] = steps + cache[n]; if (cache[i] > length) { length = cache[i]; number = i; } } return std::make_pair(number, length); } int main() { struct test_data { unsigned long long limit; unsigned long long start; long steps; }; std::vector<test_data> data { { 10ULL, 9ULL, 19 }, { 100ULL, 97ULL, 118 }, { 1000ULL, 871ULL, 178 }, { 10000ULL, 6171ULL, 263 }, { 100000ULL, 77031ULL, 350 }, { 1000000ULL, 837799ULL, 524 }, { 10000000ULL, 8400511ULL, 685 }, { 100000000ULL, 63728127ULL, 949 } }; for (auto const& d : data) { auto result = longest_collatz(d.limit); if (result.first != d.start || result.second != d.steps) std::cout << "error on limit " << d.limit << std::endl; else std::cout << "less than : " << d.limit << std::endl << "starting number: " << result.first << std::endl << "sequence length: " << result.second << std::endl; } }

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

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

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

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

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

can110

2020/08/12 07:13

- test_data構造体の各メンバlimit, start, stepsが何を意味するか - longest_collatz関数の詳細 を記載ください
Y.R.T

2020/08/12 07:20

追加しました。
Y.R.T

2020/08/12 07:25

すみません。よく読んでいなかったです。 理解できました。 ありがとうございます。
guest

回答1

0

ベストアンサー

d.stepsはどういう意味ですか?

書いてのとおり、struct test_datastepsです。

投稿2020/08/12 07:17

maisumakun

総合スコア145183

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

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

Y.R.T

2020/08/12 07:22

次の行の配列を意味しますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問