002 - 計算量の概念 Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MiB

講座動画

問題文

正整数 N が与えられます。 1 から N までを足した和を出力してください。

制約

  • N は正の整数
  • 1 \leq N \leq 1,000,000,000

入力

入力は以下の形式で標準入力から与えられる。

A B

出力

答えを整数で出力せよ。


入力例 1

10

出力例 1

55

入力例 2

1000000000

出力例 2

500000000500000000

C++ での正しくない回答例

#include<iostream>
using namespace std;
int main()
{
    // 整数の入力
    long n;
    cin >> n;
    // 答えの計算(一つずつ足す)
    long ans = 0;
    for(int i = 1; i <= n; i++) ans += i;
    // 出力
    cout << ans << endl;
    return 0;
}
    

Python3 での正しくない回答例

# 入力
n = int(input())
# 計算 (全部足す)
ans = 0
for i in range(1, n + 1):
    ans += i
# 出力
print(ans)

C++ での正しい解答例

#include<iostream>
using namespace std;
int main()
{
    // 整数の入力
    long n;
    cin >> n;
    // 答えの計算(一発で計算する)
    long ans = n * (n + 1) / 2;
    // 出力
    cout << ans << endl;
    return 0;
}

Python3 での正しい解答例

# 入力
n = int(input())
# 計算
ans = n * (n + 1) // 2
# 出力
print(ans)

例題解説動画