首頁  >  文章  >  後端開發  >  使用給定的操作將數組縮減為一個元素

使用給定的操作將數組縮減為一個元素

PHPz
PHPz轉載
2023-08-31 19:01:15972瀏覽

使用給定的操作將數組縮減為一個元素

給定一個整數變數 Number 作為輸入。讓我們考慮一個按排序順序包含 1 到 Number 範圍內的元素的陣列。如果我們對陣列執行操作,則每一步都會刪除奇數位置的元素。那麼目標就是執行這個操作N 直到只剩下一個元素為止的次數。在末尾列印該元素。

注意 -:元素的定位使得索引 0 處的陣列位於第 1 個位置,依此類推。

元素數量的測試案例在陣列中

輸入數字=1,輸出= 1

輸入數字=2,輸出= 2

輸入數字=3,輸出= 2

>

輸入數量=4,輸出=4

輸入數量=5,輸出=4

輸入數量=6,輸出=4

輸入數量=7,輸出= 4

......

輸入數量=12,輸出= 8

輸入數量=20,輸出= 16

根據上述觀察,對於2 到2i 1-1 之間的數字範圍,輸出將為2i .

範例

輸入−Number=7

##− 單一歸約運算後的元素為:4

解釋− 第一個元素位於位置1,依此類推。

陣列將為[ 1 2 3 4 5 6 7 ]

第一次操作後:[ 2 4 6 ]

第二次操作後:[ 4 ]

輸入 − 數字=18

輸出− 歸約運算後的單一元素為:4

解釋 − 第一個元素位於位置1 且

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

#第一次操作後: [ 2 4 6 8 10 12 14 16 18]

第2 次操作後:[ 2 8 12 16 ]

#第3 次操作後:[ 8 16 ]

第4 次操作後[ 16 ]

下面程式中使用的方法如下

在這個方法中,我們將使用while 迴圈根據上面的公式計算最終結果。以初始值為2,遍歷直到2*結果

  • 取輸入變數Number

  • 函數 getsingleElement(long num) 取得輸入數字並依照上述公式列印結果。

  • 取得變數結果。

  • 用2初始化結果。

  • 使用while迴圈遍歷,直到結果*2 li>

  • will 內的雙倍結果。

  • 一旦 while 迴圈結束,我們就會得到所需的值。

  • 傳回結果。

  • 在main中列印結果。

範例

#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
#

以上是使用給定的操作將數組縮減為一個元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除