题目描述
在线性代数、计算几何中,向量点积是一种十分重要的运算。
给定两个n维向量a=(a1,a2,…,an)和b=(b1,b2,…,bn),求点积a·b=a1b1+a2b2+…+anbn。
要求定义函数,参数为数组a,b,求向量a和b的点积并返回计算结果。
未定义函数,不计分。
输入
第一行是一个整数n。1 <= n <= 1000。
第二行包含n个整数a1,a2,…,an。
第三行包含n个整数b1,b2,…,bn。
相邻整数之间用单个空格隔开。每个整数的绝对值都不超过1000
输出
一个整数,即两个向量的点积结果
样例输入
3
1 4 6
2 1 5
样例输出
36
很水的题,按照题意来就可以了
AC代码如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24#include <iostream> using namespace std; const int maxn=1e3+5; int a[maxn]; int b[maxn]; int func(int n,int a[],int b[]) { int sum=0; for(int i=0;i<n;i++) sum+=a[i]*b[i]; //计算积 return sum; //最后返回积 } int main() { int n; cin>>n; for(int j=0;j<n;j++) cin>>a[j]; for(int i=0;i<n;i++) cin>>b[i]; cout<<func(n,a,b)<<endl; return 0; }
题目描述
有n个整数,使前面各数顺序向后移m个位置,最后m个数变成前面m个数,见图。写一函数:实现以上功能,在主函数中输入n个数和输出调整后的n个数。
输入
输入数据的个数n n个整数移动的位置m
输出
移动后的n个数
样例输入
10
1 2 3 4 5 6 7 8 9 10
2
样例输出
9 10 1 2 3 4 5 6 7 8
很水,思考一下其实也不需要模拟交换操作,直接从 n-m那个数开始输出就可以了
ac代码如下:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21#include <iostream> using namespace std; void print(int n,int m,int a[]) { for(int i=n-m,j=0;j<n;j++) cout<<a[(i+j)%n]<<' '; cout<<endl; return ; } int main() { int n,m; int a[1005]; cin>>n; for(int i=0;i<n;i++) cin>>a[i]; cin>>m; print(n,m,a); return 0; }
最后
以上就是包容手链最近收集整理的关于学校oj题 12.19的全部内容,更多相关学校oj题内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复