向量点积计算
题目描述
在线性代数、计算几何中,向量点积是一种十分重要的运算。
给定两个 n n n 维向量 a = ( a 1 , a 2 , ⋯ , a n ) a=(a_1,a_2, \cdots ,a_n) a=(a1,a2,⋯,an) 和 b = ( b 1 , b 2 , ⋯ , b n ) b=(b_1,b_2, \cdots ,b_n) b=(b1,b2,⋯,bn),求点积 a a a · b = a 1 b 1 + a 2 b 2 + ⋯ + a n b n b=a_1b_1+a_2b_2+ \cdots +a_nb_n b=a1b1+a2b2+⋯+anbn。
输入格式
第一行是一个整数 n n n。 1 ≤ n ≤ 1000 1 \le n \le 1000 1≤n≤1000。
第二行包含 n n n 个整数 a 1 , a 2 , ⋯ , a n a_1,a_2, \cdots ,a_n a1,a2,⋯,an。
第三行包含 n n n 个整数 b 1 , b 2 , ⋯ , b n b_1,b_2, \cdots ,b_n b1,b2,⋯,bn。
相邻整数之间用单个空格隔开。每个整数的绝对值都不超过 1000 1000 1000。
输出格式
一个整数,即两个向量的点积结果。
样例 #1
样例输入 #1
3
1 4 6
2 1 5
样例输出 #1
36
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<stdbool.h>
int main(){
long long num1[1001],num2[1001];
long n,i,sum=0;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&num1[i]);
}
for(i=0;i<n;i++){
scanf("%d",&num2[i]);
sum+=num1[i]*num2[i];
}
printf("%d\n",sum);
return 0;//csdn 旺旺的碎冰冰~
}