题解:B4252 [科大国创杯小学组 2024] 代数
B4252 [科大国创杯小学组 2024] 代数 题解
题目传送门
分析
一道模拟题,考察对数组和循环结构的运用。
题意:给定序列
用数组和循环结构实现即可。
很容易写出代码:
#include <stdio.h>
const int N = 1000005;
int n, a[N], b[N], sum;
signed main(void) {
scanf("%d", &n);
for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
for (int i = 1; i <= n; ++i) scanf("%d", &b[i]);
for (int i = 1; i <= n; ++i) sum += a[i] * b[i];
printf("%d", sum);
return 0;
}
但是,交上去之后只得了 int,要使用 long long 类型(最大点积为
AC code
#include <stdio.h>
const int N = 1000005; int n, a[N], b[N]; long long sum;
signed main(void) {
scanf("%d", &n);
for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
for (int i = 1; i <= n; ++i) scanf("%d", &b[i]);
for (int i = 1; i <= n; ++i) sum += 1ll * a[i] * b[i];
printf("%lld", sum);
return 0;
}
事实上我们可以把
#include <stdio.h>
int n, a[1000005]; long long sum;
signed main(void) {
scanf("%d", &n);
for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
for (int i = 1, b; i <= n; ++i) scanf("%d", &b), sum += 1ll * a[i] * b;
printf("%lld", sum);
return 0;
}