C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C ++ですべての奇数が削除されたときに、範囲[1、n]でk番目に小さい数を見つけます


この問題では、2つの整数値nとkが与えられます。私たちのタスクは、すべての奇数が削除されたときに、範囲[1、n]でk番目に小さい数を見つけることです。

偶数の値のみを含む[1、n]の範囲でk番目に小さい数を見つける必要があります。

したがって、範囲[1、5]から->番号は2、4になります。

問題を理解するために例を見てみましょう。

入力: n =12、k =4

出力: 8

説明:

[1、n]の範囲の要素でさえ:2、4、6、8、10、12

4番目に小さい要素は8です。

ソリューションアプローチ:

nまでの偶数からk番目の要素を見つける必要があるため、解は簡単です。これは、次の式を使用して簡単に計算できます。

要素=2*k。

ソリューションの動作を説明するプログラム

#include <bits/stdc++.h>
using namespace std;

int main() {
   
   int n = 124, k = 12;
   if(n > 2*k){
      cout<<"kth smallest number is "<<(2 * k);  
   }
   else
      cout<<"kth smallest number cannot be found";
   return 0;
}

出力

kth smallest number is 24

  1. C ++では、係数が最小の範囲内のすべての数値をKとしてカウントします。

    このチュートリアルでは、係数がKとして最小の範囲の数値を見つけるプログラムについて説明します。 このために、範囲[a、b]が提供されます。私たちのタスクは、与えられた範囲内で、係数がKとして最小である数を数えることです。 例 #include <bits/stdc++.h> using namespace std; //checking if K is a prime bool if_prime(int k){    if (k <= 1)       return false;    for (int

  2. C++で正確にk個の奇数を持つ最長のサブ配列を見つけます

    n個の要素を持つ1つの配列があるとします。問題は、正確にk個の奇数を持つ最長のサブ配列を見つけることです。したがって、A =[2、3、4、11、4、12、7]、およびk =1の場合、出力は4になり、サブ配列は[4、11、4、12]になります。 これは、スライディングウィンドウを使用して解決できます。タスクは以下のようなものです- max:=0を初期化し、:=0をカウントし、:=0を開始します 0からn– 1の範囲のiについては、次のようにします arr [i] mod 2が0でない場合は、カウントを1増やします kで開始<=iのときに、次の手順を実行します arr [start] m