Official
A - 内積の計算 / Dot Product Calculation Editorial
by
A - 内積の計算 / Dot Product Calculation Editorial
by
MMNMM
初心者の方へ
- AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
- また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
- C++入門 AtCoder Programming Guide for beginners (APG4b) は、競技プログラミングのための C++ 入門用コンテンツです。
- Python入門 AtCoder Programming Guide for beginners (APG4bPython) は、競技プログラミングのための Python 入門用コンテンツです。
この問題では、整数を \(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)
