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

隣接する要素の合計が指定された配列と同じである順列を見つけるためのC++プログラム


n個の要素を持つ配列Aがあるとします。関数F(p)は、p内の隣接する要素の合計のソートされた配列です。したがって、F(p)=sort([p1 + p2、p2 + p3、... pn-1 + pn])。 Aで表される順列があります。F(A)が同じであるAの異なる順列を見つける必要があります。

したがって、入力がA =[2、1、6、5、4、3]の場合、F(A)=sort( [2 + 1、1 + 6、6 + 5、5 + 4、4 + 3])=sort([3、7、11、9、7])=[3,7,7,9,11]。そして、sort([1 + 2、2 + 5、5 + 6、6 + 3、3 + 4])=sort([3、7、11、9、7])=[3、7、7、9、 11]。 (他の答えもあります)

ステップ

これを解決するには、次の手順に従います-

n := size of A
for initialize i := n - 1, when i >= 0, update (decrease i by 1), do:
   print A[i]

理解を深めるために、次の実装を見てみましょう-

#include <bits/stdc++.h>
using namespace std;
void solve(vector<int> A) {
   int n = A.size();
   for (int i = n - 1; i >= 0; i--)
      cout << A[i] << ", ";
}
int main() {
   vector<int> A = { 2, 1, 6, 5, 4, 3 };
   solve(A);
}

入力

{ 2, 1, 6, 5, 4, 3 }

出力

3, 4, 5, 6, 1, 2,

  1. 数の奇数因子の合計を見つけるためのC++プログラム

    正の整数で与えられ、タスクは、数値の奇数因子を生成し、与えられた奇数因子の合計を見つけることです。 例 Input-: number = 20 Output-: sum of odd factors is: 6 Input-: number = 18 Output-: sum of odd factors is: 13 したがって、結果=1 + 5 =6 以下のプログラムで使用されるアプローチは次のとおりです − その数の奇数因子の合計を計算するための数を入力します 数字0と2は両方とも偶数であるため無視し、数字1は奇数であるため保存します ループを3から数値の平方根まで開始し

  2. 配列要素の乗算のためのC++プログラム

    整数要素の配列で与えられ、タスクは配列の要素を乗算して表示することです。 例 Input-: arr[]={1,2,3,4,5,6,7} Output-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 Input-: arr[]={3, 4,6, 2, 7, 8, 4} Output-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 以下のプログラムで使用されるアプローチは次のとおりです − 一時変数を初期化して、最終結果を1で格納します ループを0からnまで開始します。nは配列のサイズです 最終結果を得るには、tempの値にarr[i]を掛け続