计算C ++中给定范围内的最小元素数

我们得到了一个大小为N的整数数组。变量L和R定义了一个介于1和N之间的范围。目标是找到位于范围L和R中的最小元素数,使得L> = 1且R <= N.

  • 我们将遍历位于范围L和R中的元素并找到最小的元素,以实现此目的。

  • 同样,遍历范围L和R的元素,如果任何元素等于在步骤1中计算的最小值,则递增计数。

让我们通过示例来理解。

输入− arr [] = {1,2,3,0,3,2,0,1},N = 8,L = 2,R = 5

输出-范围内最小的计数-1

说明-

L(1)到R(5)范围内的元素是arr [1]至arr [4]。{2,3,0,3}。最小值为0。计数0为1。

输入− arr [] = {1,2,3,0,3,2,0,1},N = 8,L = 3,R = 8

输出-范围内最小的计数-2

说明-

在L(3)到R(8)范围内的元素是arr [2]至arr [7]。{3,0,3,2,0,1}。最小值为0。计数0为2。

以下程序中使用的方法如下

  • 我们采用以随机数初始化的整数数组arr []。

  • 整数L和R代表arr []内部的范围。Count存储范围L和R中最小的计数。

  • 函数countSmallest(int arr [],int n,int l,int r)以一个数组,其长度L和R作为输入,并返回该范围内最小的计数。

  • 将Minimum = arr [l],最左边的元素和最小的初始计数初始化为0。

  • 现在,如果l <0并且r> = n则返回0,则提供了无效范围。

  • 开始从索引l-1遍历数组到r-1。如果arr [i] <smallest更新最小。

  • 再次,从a-1遍历到r-1,如果arr [i] ==最小,则递增计数。

  • 返回计数为所需结果。

  • 在main内部,显示当前计数结果。

示例

#include <bits/stdc++.h>

using namespace std;

//查找数字是否为质数的函数

int countSmallest(int arr[],int n,int l, int r){

   int smallest=arr[l];

   int count=0;

   if(l<0 && r>=n)

      return 0;

   for(int i=l-1;i<r;i++){

      if(arr[i]<=smallest){

         smallest=arr[i];

      }

   }

   for(int i=l-1;i<r;i++){

      if(arr[i]==smallest){

         ++count;

      }

   }

   return count;

}

int main(){

   int arr[] = { 3,2,1,1,2,3 };

   int n = 6;

   int L,R;

   int count=0;

   L=1,R=5;

   count=countSmallest(arr,n,L,R);

   cout<<endl<<"给定范围内最小数量的计数:"<<count;

   L=3,R=4;

   count=countSmallest(arr,n,L,R);

   cout<<endl<<"给定范围内最小数量的计数:"<<count;

   return 0;

}

输出结果

如果我们运行上面的代码,它将生成以下输出-

给定范围内最小数量的计数:2

给定范围内最小数量的计数:2

以上是 计算C ++中给定范围内的最小元素数 的全部内容, 来源链接: utcz.com/z/326959.html

回到顶部