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

Cで前の数値を除算した後の配列の合計?


配列は、同じデータ型の要素のシーケンスです。この問題では、問題を解決するために整数配列を検討します。この問題では、要素をその前にある要素から除算することによって見つかった要素の合計を見つけます。

この問題をよりよく理解するために、いくつかの例を見てみましょう-

例1-

Array : 3 , 5 ,98, 345
Sum : 26

説明 − 3 + 5/3 + 98/5 + 345/98 =3 + 1 + 19 + 3 =26

各要素を前の要素で分割し、分割の整数部分のみを考慮して合計を求めました。

例2-

Array : 2, 5 , 8, 11, 43 , 78 , 234
Sum : 13

説明 − 2 + 2 + 1 + 1 + 3 + 1 + 3 =13

アルゴリズム

このアルゴリズムは、配列の各要素をトラバースします。そしてそれをその前の要素で割ります。次に、商の値を合計変数に追加します。

Input : Array - int arr[]
Output : int sum


Step 1: Initialize sum = arr[0]
Step 2: for(i = 1 to size of arr ) follow step 3
Step 3 : sum = sum + (arr[i]/arr[i-0] )
Step 4: print the sum

これは、前の数値から数値を除算した後の配列の合計を見つけるための簡単な4ステップのアルゴリズムです。 。論理によれば、最初の要素には要素がないため、配列の最初の要素で合計を初期化しました。これは、どの要素でも分割できないことを意味します。したがって、ループを考慮に入れると、-1インデックスの要素にアクセスするため、エラーが発生します。これは間違っています。

#include<stdio.h>
int main() {
   int arr[] = { 2, 5 , 8, 11, 43 , 78 , 234 };
   int n = sizeof(arr)/sizeof(arr[0]);
   int sum = arr[0];
   for (int i = 1; i < n; i++) {
      sum += arr[i] / arr[i - 1];
   }
   printf("The sum of array after dividing number from previous numbers is %d \n", sum);
   return 0;
}

出力

The sum of array after dividing number from previous number is 13.

  1. PythonでK否定後の配列の合計を最大化する

    整数の配列Aがあるとすると、次の方法で配列を変更する必要があります- iを選択してA[i]を-A[i]に置き換えることができ、このプロセスをK回繰り返します。このように変更した後、配列の可能な最大の合計を返す必要があります。 したがって、配列A =[4,2,3]、K =1の場合、出力は5になります。したがって、インデックス1を選択すると、配列は[4、-2,3]になります。 これを解決するには、次の手順に従います- 配列Aを並べ替える 0からA–1の長さの範囲のiの場合 A [i] <0の場合、A [i]:=--A [i]であり、kを1減らします k =0の場合、ル

  2. Pythonでのクエリ後の偶数の合計

    Aと呼ばれる整数の配列と、配列クエリがあるとします。 i番目のクエリ値=querys[i][0]およびindex=querys [i] [1]の場合、A[index]に値を追加します。次に、i番目のクエリの答えはAの偶数の値の合計です。すべてのクエリに対する答えを見つける必要があります。 i番目のクエリに対する回答としてanswer[i]を持つ配列が見つかります。したがって、配列が[1,2,3,4]のようであり、クエリ配列が[[1,0]、[-3,1]、[-4,0]、[2,3]]のようである場合、その場合、回答の配列は[8,6,2,4]のようになります。したがって、最初の配列は[1,2,3,4]