ホームページ  >  記事  >  バックエンド開発  >  配列要素を連結して形成された数値がハッシュ化された数値であるかどうかを確認します

配列要素を連結して形成された数値がハッシュ化された数値であるかどうかを確認します

WBOY
WBOY転載
2023-08-25 20:17:06750ブラウズ

配列要素を連結して形成された数値がハッシュ化された数値であるかどうかを確認します

この質問では、整数の配列が与えられています。すべての要素を整数に結合し、それがハーシャッド数であるかどうかを確認する必要があります。

解決策に進む前に、ハーシャッド数について理解しましょう。すべての数値はハーシャッド数であり、数値の合計で割り切れます。たとえば、12 は 1 2 の合計である 3 で割り切れるため、12 はハーシャド数になります。

この問題を解決するには、すべての配列要素を追加し、結果がハーシャッド数であるかどうかを確認します。

問題文 - 整数の配列が与えられます。すべての要素を数値に結合し、結合された数値がハーシャッド数であるかどうかを確認する必要があります。

###例###

入力

– arr = {1, 35, 69, 60};

出力

-はい

説明

- 結果の数値 1356960 は、その合計で割り切れます。

入力

arr = {1, 65, 78, 1}

出力

– いいえ

– 結合した数値 165781 は 28 で割り切れません。

入力

– arr = {1, 44}

出力

-はい

説明

——144は9で割り切れます。 方法1

このメソッドは、すべての配列要素を 1 つの文字列に結合します。次に、stoi() メソッドを使用して、結合された文字列を整数に変換します。その後、モジュロ演算子を使用して、数値が桁の合計で割り切れるかどうかを確認できます。

###アルゴリズム###

「結合された」文字列変数を定義し、空の文字列で初期化します。

  • 整数の配列を反復処理します。 to_string() メソッドを使用して数値を文字列に変換します。その後、それを「combined」変数に追加します。

  • 変数 'sum' を定義し、数値の合計を格納するためにゼロに初期化します。

  • 結合された文字列をループし、各数値の合計を保存します。

  • stoi() メソッドを使用して、結合された文字列を整数に変換します。その後、整数が剰余として取得され、結果に基づいてブール値が返されます。

  • ###例### リーリー ###出力### リーリー

    文字列を反復処理するため、時間計算量 - O(N)。

  • スペースの複雑さ - 余分なスペースを使用しないため、O(1)。

方法 2

このメソッドでは、結合された整数の各小さなブロックに対してモジュロ演算を実行し、大きな整数がその合計で割り切れるかどうかを確認します。

###アルゴリズム###

「結合された」文字列変数を定義します。

整数配列を反復処理し、すべての整数の組み合わせを「結合」変数に格納します。

    数値の合計を「sum」変数に格納します
  • ループを使用して、「結合された」文字列を反復処理します。
  • 「現在の」変数を定義し、ゼロに初期化します
  • 「現在の」変数を 10 で乗算し、現在の数値を加算します。次に、結果の値を「current」変数に保存します。
  • 「現在」と合計に対してモジュロ演算を実行します。
  • ループのすべての反復が完了したとき、「current」変数の値がゼロの場合は true を返します。現在の変数の値がゼロ以外の場合は false を返します。
  • ###例### リーリー ###出力### リーリー
  • 時間計算量 - O(N)
  • 空間の複雑さ - O(1)

    ###結論は###
  • 私たちは問題を解決する 2 つの異なる方法を学びました。 stoi() メソッドには文字列を整数に変換するときにいくつかの制限があるため、最初のメソッドは配列に含まれる要素が少ない場合にのみ使用されます。 2 番目の方法は一般的で、N 個の配列要素に使用できます。

以上が配列要素を連結して形成された数値がハッシュ化された数値であるかどうかを確認しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。