目次
質問内容
回避策
ホームページ Java ProjectEuler 質問 17: このコード行を変更すると、うまくいくはずだと思っていたにもかかわらず、答えが劇的に変わりました

ProjectEuler 質問 17: このコード行を変更すると、うまくいくはずだと思っていたにもかかわらず、答えが劇的に変わりました

Feb 13, 2024 pm 08:51 PM

php エディタ Apple は、ProjectEuler 第 17 号で興味深い状況に遭遇しました。コードを 1 行変更した後、コードは正常に動作するはずだと思っていたにもかかわらず、答えが劇的に変わってしまったことがわかりました。この疑問が彼の好奇心を刺激し、その理由を調べて解決策を探し始めました。この物語には挑戦と想いが詰まっており、編集者の答えが楽しみになります。

質問内容

プロジェクトオイラーの質問17に取り組んでいます。書かれた数字の合計文字数を 1 ~ 1000 までカウントするプログラムを作成する必要があります。スペースとハイフンは無視されます。問題の説明によると、数百の数字に「and」が含まれています (342)。私のコードは、100 の倍数 (追加の「合計」を計算する場合) を除いて、ほとんどの場合に機能します。たとえば、600 は「600 and」と数えます。このため、私の答えは 27 (100 桁中 9 桁中 3 桁) から外れてしまいました。これはほぼ正しい解決策です:

リーリー

これにより、出力は 21151 になりますが、これは予想される出力 21124 とは 27 異なります。変数 num はデバッグ目的で使用されます。

ループの行の 1 つを変更して、追加のステートメントを追加してみました:

リーリー

この更新バージョンを実行すると、出力は 18487 になります。なぜこの違いがこれほど顕著なのかわかりませんが、これがどこから来るのかを理解したいと思っています。私の知識が限られていたため、最初は三項演算子のせいだと思いました。また、コードをより効率的にするための提案も歓迎します。 印刷する前に sum-27 と入力したいのですが、それは少しズルな気がします:)。 ありがとう!

回避策

他の人があなたの質問へのコメントで述べているように、あなたの問題は、コードが100の倍数の数値をどのように処理するかです。常に hundred を追加し、単に hundredum> を追加することはありません。実際、あなたは質問の中で自分自身を示しました:

以下のコードでは、三項演算子ではなく、明示的な if ステートメントを使用しています。これは、コードを読むときに理解しやすくなると考えているためです。これが、質問に投稿されたコードに加えた唯一の変更であることに注意してください。

リーリー

上記のコードを実行すると、次の結果が得られます:

リーリー

質問のコード内で、これが予想される答えであると (コードのコメントに) 書きました。

以上がProjectEuler 質問 17: このコード行を変更すると、うまくいくはずだと思っていたにもかかわらず、答えが劇的に変わりましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)