信息学奥赛一本通_1.6编程基础之一维数组_09:向量点积计算

09:向量点积计算

总时间限制: 

1000ms

 

内存限制: 

65536kB

描述

在线性代数、计算几何中,向量点积是一种十分重要的运算。

给定两个n维向量a=(a1,a2,...,an)和b=(b1,b2,...,bn),求点积a·b=a1b1+a2b2+...+anbn。

输入

第一行是一个整数n。1 <= n <= 1000。
第二行包含n个整数a1,a2,...,an。
第三行包含n个整数b1,b2,...,bn。
相邻整数之间用单个空格隔开。每个整数的绝对值都不超过1000。

输出

一个整数,即两个向量的点积结果。

样例输入

3
1 4 6
2 1 5

样例输出

36

 

#include<iostream>

using namespace std;

int main(){
	int n,a[1000],b[1000];
	long long c[1000],s=0;//避免值太大溢出
	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++){
		c[i]=a[i]*b[i];
		s+=c[i];
	}
	cout<<s<<endl;
	return 0;
}