작성일 :

문제 링크

28701번 - 세제곱의 합

설명

문제의 목표는 주어지는 수 n 에 대하여 다음 세 값을 계산하는 것입니다.

  1. 1 부터 n 까지의 수의 합
  2. 1 부터 n 까지의 수의 합의 제곱
  3. 1 부터 n 까지의 수의 세제곱의 합

풀이 과정은 다음과 같습니다.

  1. 1 부터 n 까지의 수의 합을 계산합니다.
  2. 이 합의 제곱을 계산합니다.
  3. 각 수의 세제곱의 합을 계산합니다.
  4. 위 세 값들을 출력합니다.

1 부터 n 까지의 수의 합은 등차수열의 공식을 활용하여 다음과 같이 쉽게 구할 수 있습니다 : (n * (n + 1)) / 2


Code

[ C# ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
namespace Solution {
  class Program {
    static void Main(string[] args) {

      var n = int.Parse(Console.ReadLine()!);
      var sum = n * (n + 1) / 2;
      var sumSqrd = sum * sum;

      int sumOfCubed = 0;
      for (int i = 1; i <= n; i++)
        sumOfCubed += (int)Math.Pow(i, 3);

      Console.WriteLine(sum);
      Console.WriteLine(sumSqrd);
      Console.WriteLine(sumOfCubed);

    }
  }
}



[ C++ ]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <bits/stdc++.h>

using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int n; cin >> n;
  int sum = n * (n + 1) / 2;
  int sumSqrd = sum * sum;

  int sumOfCubed = 0;
  for (int i = 1; i <= n; i++)
    sumOfCubed += pow(i, 3);

  cout << sum << "\n"
       << sumSqrd << "\n"
       << sumOfCubed << "\n";

  return 0;
}