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

最初のn個の自然数からの2つのサブセットの合計間の最小差を見つけるC++プログラム


数nがあるとします。最初のn個の自然数を考えてみましょう。各要素が正確に1つのセットに属し、Aの要素の合計とBの要素の合計の絶対差が最小になるように、それらを2つのセットAとBに分割し、その差を見つける必要があります。

したがって、入力がn =5の場合、出力は1になります。これは、A ={1、3、4}およびB ={2、5}とすると、合計値が8と7になるためです。違いは1です。

ステップ

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

return (n * (n + 1) / 2) mod 2

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

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

int solve(int n) {
   return (n * (n + 1) / 2) % 2;
}
int main() {
   int n = 5;
   cout << solve(n) << endl;
}

入力

5

出力

1

  1. Pythonの2つのリストから2つの要素間の最小の違いを見つけるプログラム

    L1とL2の2つのリストがあるとすると、L1の数値とL2の数値の差が最も小さいものを見つける必要があります。 したがって、入力がL1 =[2、7、4]、L2 =[16、10、11]の場合、最小の差は10-7 =3であるため、出力は3になります。 これを解決するには、次の手順に従います- リストL1を並べ替え、リストL2を並べ替えます ans:=無限大 i:=0、j:=0 i

  2. Pythonで2つの数値のシフトされたテーブル間の最小の違いを見つける

    =0。 したがって、入力がp=7およびq=17、r=6およびs=3の場合、出力は0になります。7の表=[7、14、21、28、35、42、49、 ...]および17のテーブル=[17、34、51、68、85、102、119、...]の場合、7のシフトされたテーブルは[13、20、27、34、41、48、55になります、...]および17のシフトされたテーブルは[20、37、54、71、88、105、121、...]になり、これらのシフトされたテーブルの2つの項の最小差は20-20=0になります。 これを解決するには、次の手順に従います- g:=(p、q)のgcd 違い:=|