C++で指定された数を減らすために必要な操作の数を数えます
-
最初の操作はK+Ops [0]で、最初の要素はK
に追加されます -
後1.K<0になるまでOps[i]をKに追加します。ここで、インデックスiは循環的に変化し続けます。0<=i
注 −K<0になるまでOps[i]を追加し続けます。 iが最後の要素Ops[N-1]に到達した場合、再びi=0から開始します。循環的に。
まず、配列Ops[]>0のすべての要素の合計を確認します。はいの場合、Kを減らすことはできません。 -1を返します。それ以外の場合は、KにOps [i]を追加し続け、K <0であるかどうかを確認し、はいの場合はループを解除します。
追加後の操作の増分カウント:K +Ops[i]。
例を挙げて理解しましょう。
入力 −
ops[]= { -4,2,-3,0,2 }, K=5
出力 −数を減らすために必要な操作の数− 3
説明 −kは5です。操作は−
1. K+ops[0]= 5+(-4) = 1 2. K+ops[1]= 1+2 = 3 3. K+ops[2]= 3+(-3) = 0
入力 −
ops[]= { 5,5,3,-2 }, K=10
出力 −kを減らすことはできません!!
説明 −Kは10です。操作は−
1. K+ops[0]= 10+5= 15 2. K+ops[1]= 15+5= 20 3. K+ops[2]= 20+3= 23 4. K+ops[3]= 23+-2= 22 5. K+ops[0]= 22+5= 27 6. K+ops[1]= 27+5=32 7. …………………
ops [] =5 + 5 + 3-2 =11のすべての要素の合計を早期にチェックすると、11+10は常に+veになります。したがって、Kを-0に減らすことはできません。
以下のプログラムで使用されているアプローチは次のとおりです
-
ランダムな整数で初期化された整数配列ops[]を使用します。
-
変数Kには正の値が与えられます。
-
関数countOperations(int op []、int n、int k)は、K配列Ops []とその長さをパラメーターとして受け取り、Kを0未満に減らすために必要な演算を返します。
-
最初の操作数をカウントで0とします。
-
ops []の要素の合計を計算し、合計に格納します。 sum> =0の場合、-1を返します。
-
k> 0でない場合は、ops[i]とインクリメントカウントを追加し続けます。 k<0の場合ループを解除します。
-
結果としてカウントを返します。
例
#include <bits/stdc++.h> using namespace std; long countOperations(int op[], int n, int k){ long count = 0; int sum=0; int i=0; for(int i=0;i<n;i++){ sum+=op[i]; } if(sum-k>=0) { return -1; } //number k can never be reduced as sum-k is always positive or 0 while(k>0){ for(i=0;i<n;i++){ if(k>0){ count++; k+=op[i]; } else { break; } } } return count; } int main(){ int Ops[] = { 1,-1,5,-11}; int len= sizeof(Ops) / sizeof(Ops[0]); int K=10; long ans=countOperations(Ops,len,K); if(ans==-1) { cout<<"K cannot be reduced!!"; } else { cout<<"Number of operations : "<<ans; } return 0; }
出力
上記のコードを実行すると、次の出力が生成されます-
Number of operations : 8
-
C++で指定されたサイズの長方形内で可能な菱形の数を数えます
高さX幅の寸法の長方形が与えられます。長方形は、点(0,0)を左下隅に持つ2D座標系で表されます。したがって、目標は、これらすべての条件が満たされるように、この長方形内で可能な菱形の数を数えることです- ひし形の面積は0を超えています。 ひし形の対角線はx軸とy軸に平行です。 ひし形には、すべてのコーナーの整数座標があります。 例を挙げて理解しましょう 入力 −長さ=3幅=3 出力 −指定されたサイズの長方形内で可能な菱形の数は次のとおりです。4 説明 −下の図には、height =width=3の長方形があります。また、面積が0を超え、対角線が両方の軸に平行(
-
指定された数値の桁を合計するC++プログラム
これは、C++言語で桁の合計を計算する例です。 例 #include<iostream> using namespace std; int main() { int x, s = 0; cout << "Enter the number : "; cin >> x; while (x != 0) { s = s + x % 10; x = x / 10;