BUG 与反向点积

时间限制: 1000 ms 内存限制: 5000 kb
总通过人数: 104 总提交人数: 104
Special Judge

BUG 与反向点积

题目描述

反向点积是指将两个向量的元素按特定的方式反向相乘并求和。对给定的两个长度相同的向量 AB,我们想知道它们的反向点积是多少

具体来说,对于 $A=(a_0, a_1,...a_{n-1})$ 和 $B=(b_0,b_1,...,b_{n-1})$,反向点积定义为

$A \odot B=a_0 b_{n-1}+a_1 b_{n-2}+...+a_{n-1} b_0$

每次给定两个长度相同的向量 AB,请计算它们的反向点积。

输入格式

不定组数据输入,保证不超过 1000 组。

对于每组数据,第一行包含一个整数 $n$($1\leq n \leq 100$),表示两个向量的长度;第二行包含 $n$ 个整数表示向量 $A$ 的元素,第三行包含 $n$ 个整数表示向量 $B$ 的元素。保证向量的每个元素的值在 $[-1000,1000]$ 区间内。

输出格式

对于每组输入,输出一行一个整数,表示向量 AB 的反向点积结果。

样例输入

3
1 2 3
4 5 6
3
1 -2 3
-4 5 -6

样例输出

28
-28

BUG 代码

#include <stdio.h>

int main() {
    int n;
    while (scanf("%d", &n)) {
        int A[1000000] = {};
        int B[1000000] = {};
        for (int i = 0; i <= n; i++) {
            scanf("%d", &A[i]);
        }
        for (int i = 0; i <= n; i++) {
            scanf("%d", &B[i]);
        }
        int ans = 0;
        for (int i = 0; i <= n; i++) {
            ans += A[i] * B[n - i - 1];
        }
        printf("%ld\n", ans);
    }
    return 0;
}

相关推荐