Given an array arr, the task is to find the sum of the product of digits of all array elements
Example:
Input: arr[]={11, 23, 41}
Output: 11
Explanation: 1*1 + 2*3 + 4*1 = 1 + 6 + 4 = 1111Input: arr[]={46, 32, 78, 0}
Output: 86
Approach: To solve this problem, find the product of digits of all numbers and then just add them up. Follow the below steps to solve this problem:
- Create a function findProduct which will get a number and find the product of its digits.
- Create a variable sum to store the final answer and initialise it with 0.
- Now, traverse the array and for each element:
- Pass it to the function findProduct and get the product of its digit.
- Then add its product of digit to sum.
- Return sum as the final answer.
Below is the implementation of the above approach:
C++
// C++ code for the above approach #include <bits/stdc++.h> using namespace std;
// Function to find the product of the // digits of a number N int findProduct( int N)
{ if (N == 0) {
return 0;
}
int product = 1;
while (N > 0) {
product *= (N % 10);
N /= 10;
}
return product;
} // Function to find the sum of the product of // digits of all array elements int sumOfProduct(vector< int > arr)
{ int sum = 0;
for ( auto x : arr) {
sum += findProduct(x);
}
return sum;
} // Driver Code int main()
{ vector< int > arr = { 46, 32, 78, 0 };
cout << sumOfProduct(arr);
} |
Java
// Java code to implement above approach import java.util.*;
public class GFG {
// Function to find the product of the // digits of a number N static int findProduct( int N)
{ if (N == 0 ) {
return 0 ;
}
int product = 1 ;
while (N > 0 ) {
product *= (N % 10 );
N /= 10 ;
}
return product;
} // Function to find the sum of the product of // digits of all array elements static int sumOfProduct( int []arr)
{ int sum = 0 ;
for ( int i = 0 ; i < arr.length; i++) {
sum += findProduct(arr[i]);
}
return sum;
} // Driver code public static void main(String args[])
{ int []arr = { 46 , 32 , 78 , 0 };
System.out.println(sumOfProduct(arr));
} } // This code is contributed by Samim Hossain Mondal. |
Python3
# Python code for the above approach # Function to find the product of the # digits of a number N def findProduct(N):
if (N = = 0 ):
return 0
product = 1
while (N > 0 ):
product * = (N % 10 )
N = N / / 10
return product
# Function to find the sum of the product of # digits of all array elements def sumOfProduct(arr):
sum = 0
for x in arr:
sum + = findProduct(x)
return sum
# Driver Code arr = [ 46 , 32 , 78 , 0 ]
print (sumOfProduct(arr))
# This code is contributed by Saurabh Jaiswal |
C#
// C# code to implement above approach using System;
class GFG {
// Function to find the product of the // digits of a number N static int findProduct( int N)
{ if (N == 0) {
return 0;
}
int product = 1;
while (N > 0) {
product *= (N % 10);
N /= 10;
}
return product;
} // Function to find the sum of the product of // digits of all array elements static int sumOfProduct( int []arr)
{ int sum = 0;
for ( int i = 0; i < arr.Length; i++) {
sum += findProduct(arr[i]);
}
return sum;
} // Driver code public static void Main()
{ int []arr = { 46, 32, 78, 0 };
Console.Write(sumOfProduct(arr));
} } // This code is contributed by Samim Hossain Mondal. |
Javascript
<script> // JavaScript code for the above approach
// Function to find the product of the
// digits of a number N
function findProduct(N) {
if (N == 0) {
return 0;
}
let product = 1;
while (N > 0) {
product *= (N % 10);
N = Math.floor(N / 10)
}
return product;
}
// Function to find the sum of the product of
// digits of all array elements
function sumOfProduct(arr) {
let sum = 0;
for (let x of arr) {
sum += findProduct(x);
}
return sum;
}
// Driver Code
let arr = [46, 32, 78, 0];
document.write(sumOfProduct(arr));
// This code is contributed by Potta Lokesh
</script>
|
Output:
86
Time Complexity: O(NlogM), where N is the size of the array and M is the maximum number in the array
Auxiliary Space: O(1)