Official
A - Sigma Cubes Editorial
by
A - Sigma Cubes Editorial
by
sounansya
AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
この問題は for 文を用いて解くことができます。具体的には、以下の手順に基づいて答えを求めることができます:
- 変数 \(ans\) を用意し、最初 \(0\) で初期化する。
- \(i=1,2,\ldots,N\) に対し \(ans\) に \((-1)^i\times i^3\) を足す。
- \(ans\) に求める答えが格納されているので、 \(ans\) の値を出力する。
以上を適切に実装することでこの問題に正答することができます。
N = int(input())
ans = 0
for i in range(1, N + 1):
if i % 2 == 0:
ans += i * i * i
else:
ans -= i * i * i
print(ans)
#include <bits/stdc++.h>
using namespace std;
int main() {
int N;
cin >> N;
int ans = 0;
for (int i = 1; i <= N; i++) {
if (i % 2 == 0) {
ans += i * i * i;
} else {
ans -= i * i * i;
}
}
cout << ans << endl;
}
また、 \(\displaystyle \sum_{i=1}^N (-1)^i\times i^3=\frac{(-1)^N(4N^3+6N^2-1)+1}8\) が成り立つので、この式を元に計算することもできます。
N = int(input())
print(((-1) ** N * (4 * N**3 + 6 * N**2 - 1) + 1) // 8)
posted:
last update: