数组相乘之后再相加,输出结果


描述

小明突发奇想,发明了数组相乘的运算,**参与相乘运算的所有数组的元素都是整型数,并且所有数组需要有相同的元素个数,数组相乘后的结果为所有数组相应位置上的元素的乘积之和**。

例如,数组 a[3]={2,4,6},b[3]={3,6,9},则数组 a∗b 的结果为 23+46+69=34

再如,数组a[3]={2,4,6},b[3]={3,6,9},c[3]={1,2,3},则数组 a∗b∗c 的结果为 231+462+693=216。

**编写程序,输入n个元素个数均为m的数组,按照“数组相乘”的规则,计算n个数组相乘的结果。


```**

输入描述

第一行,输入两个正整数n和m,n和m用空格隔开,1n101⩽m⩽10。

以下的n行,每行输入m个整数,各整数之间用空格隔开。

输出描述

输出n个数组相乘的结果,结果不超过long long的范围。


谢谢

可以使用循环来实现。

代码如下:


 
#include <iostream>
 
using namespace std;
 
int main(void){
    
    int n,m;
    int arr[10][10];  // 定义存储输入的整数的数组,最多10*10个元素 
    long long product[10];  // 存储每一个数组相同列元素乘积的数组 
    long long sum=0;  // 存储数组相乘的结果 
    
    cin>>n>>m;  // 获取n和m 
    
    
    // 从输入获取n行m列的元素 
    for(int i=0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>arr[i][j];
        }
    }
    
 
    
    // 计算数组相同列的元素的乘积 
    for(int j=0;j<m;j++){
        product[j]=1;   // 计算前,存储相同列元素的乘积结果的 product[j]初始化为1 
        for(int i=0;i<n;i++){ 
          product[j]*=arr[i][j];
        }
    //    cout<<"product["<<j<<"]="<<product[j]<<endl;
     // 将数组每一列的乘积累加到和sum中 
        sum+=product[j];
    }
    
    // 打印结果 
    cout<< sum;
    
    return 0;
} 
 

img

【以下回答由 GPT 生成】

首先,我们需要读取输入的n和m,可以使用input函数获取用户输入,并将其转换为整数类型。

然后,我们需要读取n行输入的数组,并将每行的m个整数保存到一个二维列表中。我们可以使用循环来逐行读取输入,并使用split函数将每行的字符串拆分成一个整数列表。

接下来,我们可以使用两层循环来计算n个数组的元素乘积之和。外层循环迭代每个数组的元素,内层循环迭代n个数组。在计算乘积之前,我们可以使用一个变量来保存每个位置的元素乘积之和。

最后,我们可以输出计算结果,并确保结果不超过long long的范围。

下面是一个实现上述功能的示例代码:

n, m = map(int, input().split())

# 读取n个数组
arrays = []
for _ in range(n):
    array = list(map(int, input().split()))
    arrays.append(array)

# 计算n个数组的元素乘积之和
result = 0
for j in range(m):
    product_sum = 1
    for i in range(n):
        product_sum *= arrays[i][j]
    result += product_sum

# 输出计算结果
print(result)

这样,我们就可以根据输入的n和m以及n个数组,计算它们的元素乘积之和并输出结果。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
#include <iostream>

using namespace std;

int main() {
    int n, m;
    cin >> n >> m;

    int arr[n][m];

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cin >> arr[i][j];
        }
    }

    long long result[n] = { 1 };

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            result[i] *= arr[i][j];
        }
    }

    long long sum = 0;
    for (int i = 0; i < n; i++) {
        sum += result[i];
    }

    cout << sum;

    return 0;
}