Find the sum of number of series after dividing the element of array from previous element.
Examples:
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
Approach: We take elements in an array and divide the element from previous element. We do this process for all the elements of an array except very first element. Add the result after division and very first element.
Note: If any element is zero in an array then it fails to do the task and return minus one.
Implementation:
C++
#include <bits/stdc++.h>
using namespace std;
int divideAndSum( int arr[], int n)
{
int sum = 0;
for ( int i = 0; i < n; i++) {
if (arr[i] == 0)
return -1;
if (i == 0)
sum += arr[i];
else
sum += arr[i] / arr[i - 1];
}
return sum;
}
int main()
{
int arr[] = { 3, 7, 9, 10, 12, 18 };
int n = sizeof (arr)/ sizeof (arr[0]);
cout << divideAndSum(arr, n);
return 0;
}
|
Java
import java.io.*;
class GFG
{
static int divideAndSum( int arr[], int n)
{
int sum = 0 ;
for ( int i = 0 ; i < n; i++) {
if (arr[i] == 0 )
return - 1 ;
if (i == 0 )
sum += arr[i];
else
sum += arr[i] / arr[i - 1 ];
}
return sum;
}
public static void main (String[] args)
{
int arr[] = { 3 , 7 , 9 , 10 , 12 , 18 };
int n = arr.length;
System.out.println( divideAndSum(arr, n));
}
}
|
Python3
def divideAndSum(arr, n):
sum = 0
for i in range ( 0 ,n):
if (arr[i] = = 0 ):
return - 1
if (i = = 0 ):
sum + = arr[i]
else :
sum + = int (arr[i] / arr[i - 1 ])
return int ( sum )
arr = [ 3 , 7 , 9 , 10 , 12 , 18 ]
n = len (arr)
print (divideAndSum(arr, n))
|
C#
using System;
class GFG
{
static int divideAndSum( int []arr, int n)
{
int sum = 0;
for ( int i = 0; i < n; i++) {
if (arr[i] == 0)
return -1;
if (i == 0)
sum += arr[i];
else
sum += arr[i] / arr[i - 1];
}
return sum;
}
public static void Main ()
{
int []arr = { 3, 7, 9, 10, 12, 18 };
int n = arr.Length;
Console.WriteLine( divideAndSum(arr, n));
}
}
|
PHP
<?php
function divideAndSum( $arr , $n )
{
$sum = 0;
for ( $i = 0; $i < $n ; $i ++) {
if ( $arr [ $i ] == 0)
return -1;
if ( $i == 0)
$sum += $arr [ $i ];
else
$sum += floor ( $arr [ $i ] /
$arr [ $i - 1]);
}
return $sum ;
}
{
$arr = array (3, 7, 9, 10, 12, 18);
$n = sizeof( $arr ) / sizeof( $arr [0]);
echo divideAndSum( $arr , $n );
return 0;
}
?>
|
Javascript
<script>
function divideAndSum(arr , n)
{
var sum = 0;
for (i = 0; i < n; i++) {
if (arr[i] == 0)
return -1;
if (i == 0)
sum += arr[i];
else
sum += parseInt(arr[i] / arr[i - 1]);
}
return sum;
}
var arr = [ 3, 7, 9, 10, 12, 18 ];
var n = arr.length;
document.write( divideAndSum(arr, n));
</script>
|
Time Complexity: O(N )
Auxiliary Space: O(1)