2013. 11. 13.

Project Euler - 문제 6번

Sum square difference

Problem 6

The sum of the squares of the first ten natural numbers is,
12 + 22 + ... + 102 = 385
The square of the sum of the first ten natural numbers is,
(1 + 2 + ... + 10)2 = 552 = 3025
Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 − 385 = 2640.
Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.

 문제 6번 : 자연수 첫 10항의 제곱들의 합은,
12 + 22 + ... + 102 = 385
그리고 자연수 첫 10항의 합의 제곱은,
(1 + 2 + ... + 10)2 = 552 = 3025
그래서 자연수 첫 10항의 합의 제곱에서 제곱의 합을 뺀 차이는 3025 − 385 = 2640. 그러면 자연수 첫 100항의 합의 제곱에서 제곱의 합을 뺀 차이는 얼마인가?



 문제 자체가 그렇게 어렵지 않고, 코딩도 매우 간단합니다. 그냥 For문을 통해서 제곱항의 합과 그냥 합을 구한 다음에, 합의 제곱에서 제곱항의 합을 빼주면 되는 문제라서 딱히 코드를 쉽게 짜거나 할 필요도 없네요.

#include <iostream>
#include "time.h"

using namespace std;

int main()
{
 clock_t start = clock();
 
 int sum_of_squares = 0;
 int square_of_the_sum = 0;
 
 for(int i = 0; i < 101; i++)
 {
  sum_of_squares += i * i;
  square_of_the_sum += i;
 }
 
 int result = square_of_the_sum * square_of_the_sum - sum_of_squares;
 
 clock_t end = clock();
    cout << "Result : " << result << endl;
    cout << "Time : " << (long double)(end-start)/CLOCKS_PER_SEC;
    return 0;
}

그러면 답이 바로 나옵니다.



댓글 없음:

댓글 쓰기