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

C++の最初のn個の自然数から長さkの増加するすべてのシーケンスを出力します


この問題では、2つの整数Kとnが与えられます。私たちのタスクは、最初のn個の自然数を使用して長さKの増加するすべてのシーケンスを印刷することです。

増加するシーケンス 次の要素の値が前の要素よりも大きい数列です。

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

Input: n = 4, K = 2
Output:
1 2
1 3
1 4
2 3
2 4
3 4

この問題を解決するために、配列の現在のシーケンスを格納するk長の配列を作成します。そして、配列内のすべての位置について、前の要素をチェックし、前の要素よりも大きい次の要素を選択します。 1からnまでのすべての値を1つずつ修正していきます。

上記のロジックを説明するプログラム-

#include<iostream>
using namespace std;
void printSequence(int arr[], int k) {
   for (int i=0; i<k; i++)
      cout<<arr[i]<<" ";
   cout<<endl;
}
void printKLengthSequence(int n, int k, int &len, int arr[]) {
   if (len == k) {
      printSequence(arr, k);
      return;
   }
   int i = (len == 0)? 1 : arr[len-1] + 1;
   len++;
   while (i<=n) {
      arr[len-1] = i;
      printKLengthSequence(n, k, len, arr);
      i++;
   }
   len--;
}
void generateSequence(int n, int k) {
   int arr[k];
   int len = 0;
   printKLengthSequence(n, k, len, arr);
}
int main() {
   int k = 3, n = 4;
   cout<<"Sequence of length "<<k<<" generated using first "<<n<<" natural numbers :\n";
   generateSequence(n, k);
   return 0;
}
出力
A sequence of length 3 generated using first 4 natural numbers −
1 2 3
1 2 4
1 3 4
2 3 4

  1. C++の配列内のすべての素数の積

    いくつかの要素を持つ整数配列arr[]が与えられた場合、タスクはその数のすべての素数の積を見つけることです。 素数は、1で割った数、またはその数自体です。または、素数は、1とその数自体を除いて他の数で割り切れない数です。 1、2、3、5、7、11など 与えられた配列の解を見つける必要があります- 入力 −arr [] ={11、20、31、4、5、6、70} 出力 − 1705 説明 −配列の素数は− 11、31、5であり、それらの積は1705 入力 − arr [] ={1、2、3、4、5、6、7} 出力 − 210 説明 −配列の素数は− 1、2、3、5、7

  2. 特定のソースから宛先までのすべてのパスをC++で出力します

    この問題では、有向グラフが与えられ、グラフのソースから宛先までのすべてのパスを印刷する必要があります。 有向グラフ は、頂点aからbに向けられたエッジを持つグラフです。 問題を理解するために例を見てみましょう ソース=K宛先=P 出力: K -> T -> Y -> A -> P K -> T -> Y -> P K -> A -> P ここで、KからPへのパスを見つけました。パスをトラバースし、KからPに向かうすべてのパスを出力しました。 この問題を解決するために、深さ優先探索を使用してグラフをトラバースします。