반응형
문제 6번
1부터 10까지 자연수를 각각 제곱해 더하면 다음과 같습니다 (제곱의 합).
12 + 22 + ... + 102 = 385
1부터 10을 먼저 더한 다음에 그 결과를 제곱하면 다음과 같습니다 (합의 제곱).
(1 + 2 + ... + 10)2 = 552 = 3025
따라서 1부터 10까지 자연수에 대해 "합의 제곱"과 "제곱의 합" 의 차이는 3025 - 385 = 2640 이 됩니다.
그러면 1부터 100까지 자연수에 대해 "합의 제곱"과 "제곱의 합"의 차이는 얼마입니까?
접근방법
1. 1부터 100까지 제곱의 합과 합의 제곱을 각각 구한다.
2. 구한 값의 차의 절대값이 우리가 구하고자 하는 값이다.
(아무리 생각해도 쉬어가는 문제인 것 같다ㅎㅎ)
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int num_i = 0;
int num_j = 0;
int num_k = 0;
for (int i = 1; i <= 100; i++)
{
num_i += i;
}
num_i = pow(num_i, 2);
for (int j = 1; j <= 100; j++)
{
num_j += pow(j, 2);
}
num_k = abs(num_i - num_j);
//cout << num_i << endl;
//cout << num_j << endl;
cout << num_k << endl;
return 0;
}
참고
반응형
'알고리즘 문제 & 프로그래밍 > C++' 카테고리의 다른 글
[C++]프로젝트 오일러 9번 문제&풀이 (a + b + c = 1000 이 되는 피타고라스 수) (0) | 2020.11.19 |
---|---|
[C++]프로젝트 오일러 8번 문제&풀이 (1000자리 수 안에서 이어지는 5개 숫자의 곱 중 최댓값은?) (0) | 2020.11.19 |
[C++]프로젝트 오일러 5번 문제&풀이 (1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수) (0) | 2020.11.19 |
[C++]프로젝트 오일러 4번 문제&풀이 (세자리 수를 곱해 만들 수 있는 가장 큰 대칭수) (0) | 2020.11.18 |
[C++]프로젝트 오일러 3번 문제&풀이 (가장 큰 소인수 구하기) (0) | 2020.11.17 |
댓글