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

3つが連続しないような最大サブシーケンスの合計


このチュートリアルでは、3つが連続しないように最大のサブシーケンスの合計を見つけるプログラムについて説明します。

このために、一連の正の整数が提供されます。私たちのタスクは、合計値に連続する正の整数を取り入れずに、最大の合計を見つけることです。

#include <bits/stdc++.h>
using namespace std;
//returning maximum subsequence without involving
//three consecutive numbers
int maxSumWO3Consec(int arr[], int n) {
   int sum[n]; if (n >= 1) sum[0] = arr[0];
   if (n >= 2) sum[1] = arr[0] + arr[1];
   if (n > 2) sum[2] = max(sum[1], max(arr[1] + arr[2], arr[0] + arr[2]));
   for (int i = 3; i < n; i++)
      sum[i] = max(max(sum[i - 1], sum[i - 2] + arr[i]), arr[i] + arr[i - 1] + sum[i - 3]);
   return sum[n - 1];
}
int main() {
   int arr[] = { 100, 1000 };
   int n = sizeof(arr) / sizeof(arr[0]);
   cout << maxSumWO3Consec(arr, n);
   return 0;
}

出力

1100

  1. C++で2つの要素が隣接しないような循環配列の最大合計

    この問題では、循環配列cirArr[]が与えられます。私たちのタスクは、C++で2つの要素が隣接しないように循環配列の最大合計を見つけるプログラムを作成することです。 問題の説明 循環配列の場合、隣接する要素を取得できないように、配列の要素の最大合計を見つける必要があります。つまり、代替要素を取得する必要があります。 循環アレイ は、配列の最後の要素が最初の要素に接続されている特殊なタイプの配列です。 問題を理解するために例を見てみましょう 入力 cirArr[] = {4, 1, 5, 3, 2} 出力 9 説明 最大合計循環サブシーケンスは[4、5、2]です。合計=9 ソリ

  2. C ++を使用して、2つの連続する数が互いに素でなく、3つの連続する数ごとが互いに素になるように数を出力するようにプログラムします。

    このチュートリアルでは、2つの連続する数が互いに素でなく、3つの連続する数ごとに互いに素になるように、数を出力するプログラムについて説明します。 ここでは、整数Nが与えられます。互いに素になることがないように、109未満のN個の整数を出力する必要がありますが、3つの連続する整数のペアは互いに素でなければなりません。 たとえば、整数4があるとします。すると、上記の両方の条件に従う数値は次のようになります。 6 15 35 14 例 #include <bits/stdc++.h> using namespace std; #define limit 1000000000 #def