検索
ホームページバックエンド開発C++数値を 4 で割り切れるには、削除する必要がある最小桁数

数値を 4 で割り切れるには、削除する必要がある最小桁数

この記事では、興味深い計算問題、「数値を 4 で割り切れるようにするために削除する必要がある最小桁数」を検討します。この質問は、コーディング コンテストやアルゴリズム ベースの面接でよく聞かれる質問であり、問​​題解決スキルを向上させるための優れた練習になります。

まず、問題文を理解しましょう。数値があり、私たちのタスクは、残りの数値が 4 で割り切れるように最小桁数を削除することです。

概念的な理解

問題は数論の分野にあります。理解すべき重要な事実は、数値が 4 で割り切れるのは、最後の 2 桁が 4 で割り切れる場合に限ります。この事実は問題を解決する上で極めて重要です。

アルゴリズムの説明

この問題を解決するアルゴリズムには次の手順が含まれます -

  • 数値を文字列に変換します。

  • 文字列の末尾から開始して、最後の 2 文字で構成される数値が 4 で割り切れるかどうかを確認します。

  • 「はい」の場合は、削除された桁数を返します。そうでない場合は、最後の文字を削除し、カウントを増やします。

  • 数値が 4 で割り切れるか、1 桁だけが残るまで、この操作を繰り返します。

###例###

これはアルゴリズムの C 実装です -

リーリー ###出力### リーリー

minRemovals 関数では、カウンター カウントを 0 に初期化し、削除されたビット数を追跡​​します。次に、数値 (文字列) の末尾から反復処理を行い、数値の最後の 2 桁が 4 で割り切れるかどうかを確認します。そうである場合はカウントを返し、そうでない場合はカウントを返します。そうでない場合は、カウントをインクリメントし、次の反復を続行します。

main 関数はプログラムへのエントリ ポイントとして機能し、入力数値を定義し、数値が 4 で割り切れるように削除する最小桁数を出力します。

テストケースの例

1351 という数字を例に考えてみましょう。最後の 2 桁 (51) を調べると、4 で割り切れないことがわかります。したがって、最後の桁 (1) を削除して、数値 135 を取得します。もう一度確認すると、最後の 2 桁 (35) がまだ 4 で割り切れないことがわかります。したがって、最後の数字 (5) を削除し、数字 13 を残します。最後の 2 桁 (13) は 4 で割り切れないため、最後の桁 (3) を削除します。ここで、4 で割り切れない数字 1 が残りますが、これ以上数字を削除することはできません。したがって、削除する必要がある最小桁数は 3 です。

時間と空間の複雑さ

このアルゴリズムの時間計算量は O(n) です。ここで、n は数値の桁数です。アルゴリズムで追加のデータ構造を使用していないため、空間複雑度は O(1) です。

###結論は###

この記事では、一般的なコンピューティングの問題、つまり数値を 4 で割り切れるようにするために削除する必要がある最小桁数を決定する問題について詳しく説明します。数論からの重要な洞察を使用して、簡潔な C ソリューションを開発します。

以上が数値を 4 で割り切れるには、削除する必要がある最小桁数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はtutorialspointで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
C#対Cパフォーマンス:ベンチマークと考慮事項C#対Cパフォーマンス:ベンチマークと考慮事項Apr 25, 2025 am 12:25 AM

C#とCのパフォーマンスの違いは、主に実行速度とリソース管理に反映されます。1)Cは通常、ハードウェアに近く、ガベージコレクションなどの追加のオーバーヘッドがないため、数値計算と文字列操作でより良いパフォーマンスを発揮します。 2)C#はマルチスレッドプログラミングでより簡潔ですが、そのパフォーマンスはCよりもわずかに劣っています。 3)プロジェクトの要件とチームテクノロジースタックに基づいて、どの言語を選択するかを決定する必要があります。

C:それは死にかけていますか、それとも単に進化していますか?C:それは死にかけていますか、それとも単に進化していますか?Apr 24, 2025 am 12:13 AM

c isnotdying; it'sevolving.1)c relelevantdueToitsversitileSileSixivisityinperformance-criticalApplications.2)thelanguageSlikeModulesandCoroutoUtoimveUsablive.3)despiteChallen

C現代の世界:アプリケーションと産業C現代の世界:アプリケーションと産業Apr 23, 2025 am 12:10 AM

Cは、現代世界で広く使用され、重要です。 1)ゲーム開発において、Cは、非現実的や統一など、その高性能と多型に広く使用されています。 2)金融取引システムでは、Cの低レイテンシと高スループットが最初の選択となり、高周波取引とリアルタイムのデータ分析に適しています。

C XMLライブラリ:オプションの比較と対照C XMLライブラリ:オプションの比較と対照Apr 22, 2025 am 12:05 AM

C:tinyxml-2、pugixml、xerces-c、およびrapidxmlには、一般的に使用される4つのXMLライブラリがあります。 1.TinyXML-2は、リソースが限られている環境、軽量ではあるが機能が限られていることに適しています。 2。PUGIXMLは高速で、複雑なXML構造に適したXPathクエリをサポートしています。 3.Xerces-Cは強力で、DOMとSAXの解像度をサポートし、複雑な処理に適しています。 4。RapidXMLはパフォーマンスと分割に非常に高速に焦点を当てていますが、XPathクエリをサポートしていません。

CおよびXML:関係とサポートの調査CおよびXML:関係とサポートの調査Apr 21, 2025 am 12:02 AM

Cは、サードパーティライブラリ(TinyXML、PUGIXML、XERCES-Cなど)を介してXMLと相互作用します。 1)ライブラリを使用してXMLファイルを解析し、それらをC処理可能なデータ構造に変換します。 2)XMLを生成するときは、Cデータ構造をXML形式に変換します。 3)実際のアプリケーションでは、XMLが構成ファイルとデータ交換に使用されることがよくあり、開発効率を向上させます。

C#対C:重要な違​​いと類似点を理解するC#対C:重要な違​​いと類似点を理解するApr 20, 2025 am 12:03 AM

C#とCの主な違いは、構文、パフォーマンス、アプリケーションシナリオです。 1)C#構文はより簡潔で、ガベージコレクションをサポートし、.NETフレームワーク開発に適しています。 2)Cはパフォーマンスが高く、手動メモリ管理が必要であり、システムプログラミングとゲーム開発でよく使用されます。

C#対C:歴史、進化、将来の見通しC#対C:歴史、進化、将来の見通しApr 19, 2025 am 12:07 AM

C#とCの歴史と進化はユニークであり、将来の見通しも異なります。 1.Cは、1983年にBjarnestrostrupによって発明され、オブジェクト指向のプログラミングをC言語に導入しました。その進化プロセスには、C 11の自動キーワードとラムダ式の導入など、複数の標準化が含まれます。C20概念とコルーチンの導入、将来のパフォーマンスとシステムレベルのプログラミングに焦点を当てます。 2.C#は2000年にMicrosoftによってリリースされました。CとJavaの利点を組み合わせて、その進化はシンプルさと生産性に焦点を当てています。たとえば、C#2.0はジェネリックを導入し、C#5.0は非同期プログラミングを導入しました。これは、将来の開発者の生産性とクラウドコンピューティングに焦点を当てます。

C#対C:学習曲線と開発者エクスペリエンスC#対C:学習曲線と開発者エクスペリエンスApr 18, 2025 am 12:13 AM

C#とCおよび開発者の経験の学習曲線には大きな違いがあります。 1)C#の学習曲線は比較的フラットであり、迅速な開発およびエンタープライズレベルのアプリケーションに適しています。 2)Cの学習曲線は急勾配であり、高性能および低レベルの制御シナリオに適しています。

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール