[백준 28701] 세제곱의 합 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
문제의 목표는 주어지는 수 n
에 대하여 다음 세 값을 계산하는 것입니다.
1
부터n
까지의 수의 합1
부터n
까지의 수의 합의 제곱1
부터n
까지의 수의 세제곱의 합
풀이 과정은 다음과 같습니다.
1
부터n
까지의 수의 합을 계산합니다.- 이 합의 제곱을 계산합니다.
- 각 수의 세제곱의 합을 계산합니다.
- 위 세 값들을 출력합니다.
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;
}