首页  >  文章  >  后端开发  >  使用给定的操作将数组缩减为一个元素

使用给定的操作将数组缩减为一个元素

PHPz
PHPz转载
2023-08-31 19:01:15969浏览

使用给定的操作将数组缩减为一个元素

给定一个整型变量 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删除