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