计算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(intarr[],intn,intl,intr)以一个数组,其长度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