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

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 サイトの他の関連記事を参照してください。

声明
この記事はstackoverflowで複製されています。侵害がある場合は、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ヘンタイを無料で生成します。

ホットツール

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール