求两个数乘积的最大位数
给定一个大小为N (> 2) 的数组arr[] 。任务是找到给定数组的任意两个数字的乘积的最大位数和。
例子:
Input : arr[] = {8, 7}
Output : 11
The product of 8 and 7 is 56. The sum of the digits of 56 is equal to 11.
Input : arr[] = {4, 3, 5}
Output : 6
Product of 4 & 3 = 12. Sum of the digits = 3.
Product of 3 & 5 = 15. Sum of the digits = 6.
Product of 4 & 5 = 20. Sum of the digits = 2.
方法:运行嵌套循环以选择数组的两个数字并获得产品。对于每个产品,检查数字总和并找到最大数字总和。
下面是上述方法的实现:
C++
// C++ program find the maximum sum of
// digits of the product of two numbers
#include
using namespace std;
// Function to find the sum of the digits
int sumDigits(int n)
{
int digit_sum = 0;
while (n) {
digit_sum += n % 10;
n /= 10;
}
return digit_sum;
}
// Function to find the maximum sum of digits of product
int productOfNumbers(int arr[], int n)
{
int sum = INT_MIN;
// Run nested loops
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
int product = arr[i] * arr[j];
// Find the maximum sum
sum = max(sum, sumDigits(product));
}
}
// Return the required answer
return sum;
}
// Driver code
int main()
{
int arr[] = { 4, 3, 5 };
int n = sizeof(arr) / sizeof(arr[0]);
cout << productOfNumbers(arr, n);
return 0;
}
Java
// Java program find the maximum sum of
// digits of the product of two numbers
import java.io.*;
class GFG
{
// Function to find the sum of the digits
static int sumDigits(int n)
{
int digit_sum = 0;
while (n > 0)
{
digit_sum += n % 10;
n /= 10;
}
return digit_sum;
}
// Function to find the maximum sum
// of digits of product
static int productOfNumbers(int []arr, int n)
{
int sum = Integer.MIN_VALUE;
// Run nested loops
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
int product = arr[i] * arr[j];
// Find the maximum sum
sum = Math.max(sum, sumDigits(product));
}
}
// Return the required answer
return sum;
}
// Driver code
public static void main (String[] args)
{
int []arr = { 4, 3, 5 };
int n = arr.length;
System.out.print( productOfNumbers(arr, n));
}
}
// This code is contributed by anuj_67..
Python3
# Python3 program find the maximum sum of
# digits of the product of two numbers
import sys
# Function to find the sum of the digits
def sumDigits(n):
digit_sum = 0;
while (n > 0):
digit_sum += n % 10;
n /= 10;
return digit_sum;
# Function to find the maximum sum
# of digits of product
def productOfNumbers(arr, n):
sum = -sys.maxsize - 1;
# Run nested loops
for i in range(n - 1):
for j in range(i + 1, n):
product = arr[i] * arr[j];
# Find the maximum sum
sum = max(sum, sumDigits(product));
# Return the required answer
return sum;
# Driver code
if __name__ == '__main__':
arr =[ 4, 3, 5 ];
n = len(arr);
print(int(productOfNumbers(arr, n)));
# This code contributed by PrinciRaj1992
C#
// C# program find the maximum sum of
// digits of the product of two numbers
using System;
class GFG
{
// Function to find the sum of the digits
static int sumDigits(int n)
{
int digit_sum = 0;
while (n > 0)
{
digit_sum += n % 10;
n /= 10;
}
return digit_sum;
}
// Function to find the maximum sum
// of digits of product
static int productOfNumbers(int []arr, int n)
{
int sum = int.MinValue;
// Run nested loops
for (int i = 0; i < n - 1; i++)
{
for (int j = i + 1; j < n; j++)
{
int product = arr[i] * arr[j];
// Find the maximum sum
sum = Math.Max(sum, sumDigits(product));
}
}
// Return the required answer
return sum;
}
// Driver code
public static void Main (String[] args)
{
int []arr = { 4, 3, 5 };
int n = arr.Length;
Console.Write(productOfNumbers(arr, n));
}
}
// This code is contributed by 29AjayKumar
Javascript
输出:
6