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$ 维向量$\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$。
第二行包含 $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; }