給定一個整數變數 Number 作為輸入。讓我們考慮一個按排序順序包含 1 到 Number 範圍內的元素的陣列。如果我們對陣列執行操作,則每一步都會刪除奇數位置的元素。那麼目標就是執行這個操作N 直到只剩下一個元素為止的次數。在末尾列印該元素。
注意 -:元素的定位使得索引 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 .
輸入−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中文網其他相關文章!