公式

A - 内積の計算 / Dot Product Calculation 解説 by MMNMM 印刷ページ


初心者の方へ

この問題では、整数を \(14\) 個読み込み、それらに対して適切に計算を行った結果を出力するプログラムを書く必要があります。

もっとも素朴な方法は、読み込みや計算の処理を \(14\) 個ぶんすべて直接書いてしまうことです。

\(14\) 回ぶんの処理を書く実装例

#include <iostream>
using namespace std;

int main() {
    // 全部書いて全部読み込む
    int A1, A2, A3, A4, A5, A6, A7, B1, B2, B3, B4, B5, B6, B7;
    cin >> A1 >> A2 >> A3 >> A4 >> A5 >> A6 >> A7 >> B1 >> B2 >> B3 >> B4 >> B5 >> B6 >> B7;

    // 答えは A1 * B1 + A2 * B2 + A3 * B3 + A4 * B4 + A5 * B5 + A6 * B6 + A7 * B7
    cout << A1 * B1 + A2 * B2 + A3 * B3 + A4 * B4 + A5 * B5 + A6 * B6 + A7 * B7 << endl;
    return 0;
}
# 全部書いて全部読み込む
A1, A2, A3, A4, A5, A6, A7 = map(int, input().split())
B1, B2, B3, B4, B5, B6, B7 = map(int, input().split())

# 答えは A1 * B1 + A2 * B2 + A3 * B3 + A4 * B4 + A5 * B5 + A6 * B6 + A7 * B7
print(A1 * B1 + A2 * B2 + A3 * B3 + A4 * B4 + A5 * B5 + A6 * B6 + A7 * B7)

このように、同じ型の変数を大量に扱うときには、配列やリストと呼ばれるデータ構造を使うと便利になります。

配列を使った実装例

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> a(7), b(7); // 長さ 7 の配列を作る
    for (int i = 0; i < 7; ++i) {
        cin >> a[i]; // a の i 番目の要素を読み込む
    }
    for (int i = 0; i < 7; ++i) {
        cin >> b[i]; // b の i 番目の要素を読み込む
    }

    int ans = 0; // 答えを入れる変数
    for (int i = 0; i < 7; ++i) {
        ans += a[i] * b[i];
    }
    cout << ans << endl;
    return 0;
}
# a, b の値を読み込んでリストを作る
a = list(map(int, input().split()))
b = list(map(int, input().split()))

ans = 0 # 答えを入れる変数
for i in range(7):
    ans += a[i] * b[i]
print(ans)

投稿日時:
最終更新: