ホームページ  >  記事  >  バックエンド開発  >  指定された演算を使用して配列を 1 つの要素に縮小します

指定された演算を使用して配列を 1 つの要素に縮小します

PHPz
PHPz転載
2023-08-31 19:01:15931ブラウズ

指定された演算を使用して配列を 1 つの要素に縮小します

整数変数 Number を入力として指定します。 1 から Number までの範囲の要素をソート順に含む配列を考えてみましょう。配列に対して演算を実行すると、奇数の位置にある要素が各ステップで削除されます。次に、目標はこの操作を実行することです N 要素が 1 つだけ残るまでの回数。要素を最後に出力します。

注 -: 要素は、インデックス 0 の配列が位置 1 になるように配置されます。以下同様です。

配列内の要素数のテスト ケース

入力番号 = 1、出力 = 1

入力番号 = 2、出力 = 2

入力数 = 3、出力 = 2

>

入力数量 = 4、出力 = 4

入力数量 = 5、出力 = 4

入力数量 = 6、出力 = 4

入力数量=7、出力=4

...

入力数量=12、出力=8

入力数量=20、出力= 16

上記の観察に基づいて、2i から 2i 1-1 までの数値範囲の場合、出力は 2i になります。 .

Example

Input-Number=7

Output- 1 回のリダクション操作後の要素は次のとおりです。 : 4

説明- 最初の要素は位置 1 にあり、以下同様です。

配列は [ 1 2 3 4 5 6 7 ]

最初の操作後: [ 2 4 6 ]

2 番目の操作後: [ 4 ]

入力 - Number=18

出力 - リダクション演算後の単一要素は次のとおりです: 4

-最初の要素は位置 1 にあり、

配列は [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ]

first After になります。 2 回目の操作: [ 2 4 6 8 10 12 14 16 18]

2 回目の操作後: [ 2 8 12 16 ]

3 回目の操作後: [ 8 16 ]

4 回目の操作後 [16]

次のプログラムで使用されるメソッドは次のとおりです

このメソッドでは、while ループを使用して、上の式。初期値 2 から開始して、2*結果

  • 入力変数の取得 Number

  • Function getsingleElement(long num) 入力された数値を取得し、上記の式に従って結果を出力します。

  • #さまざまな結果を取得します。

  • #結果を 2 で初期化します。
  • while ループを使用して、結果が *2

    #結果は 2 倍になります。 li>

  • while ループが終了すると、目的の値が得られます。
  • #結果を返します。

  • 結果をメインに出力します。

  • #include<bits/stdc++.h>
    using namespace std;
    long getsingleElement(long num){
       long result;
       result=2;
       while(result*2 <= num){
          result=result*2;
       }
       return result;
    }
    int main(){
       int Number = 20;
       cout<<"The single element after reduction operation is : "<<getsingleElement(Number) ;
       return 0;
    }
  • 出力

上記のコードを実行すると、次の出力が生成されます

The single element after reduction operation is : 16

以上が指定された演算を使用して配列を 1 つの要素に縮小しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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