2837: 练51.1 向量点积计算

内存限制:64 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:18 解决:13

题目描述

在线性代数、计算几何中,向量点积是一种十分重要的运算。
给定两个 $n$ 维向量$\vec{a}=(a_1,a_2,a_3,...,a_n)$和$\vec{b}=(b_1,b_2,b_3,...,b_n)$,求点积$\vec{a}×\vec{b}=a_1b_1+a_2b_2+a_3b_3+...+a_nb_n$ 。

输入

第一行是一个整数 $n$($1≤n≤1000$);
第二行包含 $n$ 个整数;
第三行包含 $n$ 个整数;
相邻整数之间用单个空格隔开。每个整数的绝对值都不超过 $1000$。

输出

输出向量点积。

样例输入 复制

7
7 8 9 4 8 7 8
3 7 4 7 9 9 7

样例输出 复制

332

提示

#include <bits/stdc++.h>
using namespace std;
int n, sum=0, a[1000], b[1000];
int main() {
    cin>>n;
    for (int i = 0; i < n ; i++) cin>>a[i];
    for (int i = 0; i < n ; i++) cin>>b[i];
    for (int i = 0; i < n ; i++) sum+=a[i]*b[i];
    cout<<sum<<endl;
    return 0;
}

#include<bits/stdc++.h>
using namespace std;
vector<int> a,b;
int n,x,ans=0;
int main(){
	cin>>n;
	for (int i=0;i<n;i++) {
		cin>>x;
		a.push_back(x); 
	}
	for (int i=0;i<n;i++) {
		cin>>x;
		b.push_back(x); 
	}
	for (int i=0;i<n;i++) ans+=a[i]*b[i];	
	cout<<ans;
	return 0;
}