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

会議後の疲れを最小限に抑えるC++コード


aとbの2つの数があるとします。 2人の友人がOX軸のx=aとx=bの位置にいます。友達はそれぞれ、線に沿って任意の方向に無制限に1人ずつ移動できます。移動することにより、友人の倦怠感は次のルールに従って変化します。最初の移動で倦怠感が1増加し、2番目の移動で倦怠感が2増加します。それらのうちの2つは、OX軸上の1つの整数点に一致したいと考えています。私たちは彼らが得るべき最小の総倦怠感を見つけなければなりません。

したがって、入力がa=5のような場合。 b =10の場合、最適な方法の1つは次のとおりであるため、出力は9になります。最初の友達は右に3歩移動し、2番目の友達は左に2歩移動する必要があります。したがって、総倦怠感は1 + 2 + 3 + 1 + 2=9になります。

ステップ

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

ans := |a - b|
sum := ans / 2
return (sum + (ans mod 2)) * (sum + 1)

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

#include <bits/stdc++.h>
using namespace std;
int solve(int a, int b){
   int ans = abs(a - b);
   int sum = ans / 2;
   return (sum + (ans % 2)) * (sum + 1);
}
int main(){
   int a = 5;
   int b = 10;
   cout << solve(a, b) << endl;
}

入力

5, 10

出力

9

  1. 差がnである合成数を見つけるためのC++コード

    数nがあるとします。 a --b =nとなるように、2つの合成整数(非素数)aとbを見つける必要があります。 したがって、入力がn =512のような場合、出力は4608と4096になります ステップ これを解決するには、次の手順に従います- print 10*n and 9*n. 例 理解を深めるために、次の実装を見てみましょう- #include<bits/stdc++.h> using namespace std; void solve(int n){    cout<<10*n<<", "<<9

  2. 最小の算術平均偏差を見つけるためのC++コード

    3つの要素を持つ配列Aがあるとします。 A [1]は、A [0] + A [2] =2 * A [1]の場合、2つの要素A[0]とA[3]の算術平均です。 3つの数値d(A [0]、A [1]、A [2])の算術平均偏差は| A [0] + A [2]-2 * A[1]|です。次の操作は何度でも実行できます。インデックス{0、1、2}からi!=jとなる2つのインデックスiとjを選択し、A [i]を1増やし、A[j]を1減らします。算術平均偏差の最小値を見つける必要があります。 したがって、入力がA =[2、2、6]の場合、出力は1になります。これは、A[0]を減らしてA[1]を増やすと、配列