Official

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\) の値を出力する。

以上を適切に実装することでこの問題に正答することができます。

実装例(Python3)

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)

実装例(C++)

#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\) が成り立つので、この式を元に計算することもできます。

実装例(Python3)

N = int(input())
print(((-1) ** N * (4 * N**3 + 6 * N**2 - 1) + 1) // 8)

posted:
last update: