📜  将数字与前一个数字相除后的数组总和

📅  最后修改于: 2022-05-13 01:57:48.267000             🧑  作者: Mango

将数字与前一个数字相除后的数组总和

将数组的元素与前一个元素相除后,求系列数的总和。
例子:

Input : 3 7 9 10 12 18
Explanation:  3 + 7/3 + 9/7 + 10/9 + 
12/10 + 18/12 = 9 (taking only integer 
part)   
Output : 9

Input : 1 12 24 30 60
Output : 18 
C++
// C++  program for divide and
// sum the number of series
#include 
using namespace std;
 
int divideAndSum(int arr[], int n)
{
    int sum = 0;
    for (int i = 0; i < n; i++) {
         
        // checking whether element
        // is zero or not
        if (arr[i] == 0)
            return -1;
         
        if (i == 0)
            sum += arr[i];
        else
 
            // divide element from
            // previous element
            sum += arr[i] / arr[i - 1];
    }
     
    return sum;
}
 
// Driver code
int main()
{
    int arr[] = { 3, 7, 9, 10, 12, 18 };
    int n = sizeof(arr)/sizeof(arr[0]);
    cout << divideAndSum(arr, n);
    return 0;
}


Java
// java program for divide and
// sum the number of series
import java.io.*;
 
class GFG
{
     
    static int divideAndSum(int arr[], int n)
    {
        int sum = 0;
        for (int i = 0; i < n; i++) {
             
            // checking whether element
            // is zero or not
            if (arr[i] == 0)
                return -1;
             
            if (i == 0)
                sum += arr[i];
            else
     
                // divide element from
                // previous element
                sum += arr[i] / arr[i - 1];
        }
         
        return sum;
    }
     
    // Driver code
    public static void main (String[] args)
    {
        int arr[] = { 3, 7, 9, 10, 12, 18 };
        int n = arr.length;
        System.out.println( divideAndSum(arr, n));
 
    }
}
 
// This code is contributed by vt_m


Python3
# Python 3 program for divide and
# sum the number of series
 
def divideAndSum(arr, n):
  
    sum = 0
    for i in range(0,n): 
         
         # checking whether element
         # is zero or not
        if (arr[i] == 0):
            return -1
         
        if (i == 0):
            sum += arr[i]
        else:
 
                     # divide element from
             # previous element
             sum += int(arr[i] / arr[i - 1])
      
     
    return int(sum)
  
 
# Driver code
arr =   [3, 7, 9, 10, 12, 18]  
 
n = len(arr)
print(divideAndSum(arr, n))
 
# This code is contributed by
# Smitha Dinesh Semwal


C#
// C# program for divide and
// sum the number of series
using System;
 
class GFG
{
     
    static int divideAndSum(int []arr, int n)
    {
        int sum = 0;
        for (int i = 0; i < n; i++) {
             
            // checking whether element
            // is zero or not
            if (arr[i] == 0)
                return -1;
             
            if (i == 0)
                sum += arr[i];
            else
     
                // divide element from
                // previous element
                sum += arr[i] / arr[i - 1];
        }
         
        return sum;
    }
     
    // Driver code
    public static void Main ()
    {
        int []arr = { 3, 7, 9, 10, 12, 18 };
        int n = arr.Length;
        Console.WriteLine( divideAndSum(arr, n));
 
    }
}
 
// This code is contributed by vt_m


PHP


Javascript


输出:

9

时间复杂度: O(N)

辅助空间: O(N)