코드 ¶
~cpp #include <iostream.h> int find_min_sum(int bound_num) { int n = 1; while ((n * n + n) / 2 < bound_num) n++; return n; } inline void show_min_sum(int n) { cout << n << " " << (n * n + n) / 2 << endl; } void main() { show_min_sum(find_min_sum(3000)); }
나한테 할 말 ¶
- 원래 이렇게 쓰는거 인가요 ? n(n+1)/2 가 n까지 숫자의 합으로 알고 있는데, 코딩할 때 만약에 공식을 모르는 경우는 어떻게 하나요?
공식도 알고리즘의 일종인가요? -허아영
- 음... 굳이 처음에 공식을 모르더라도 문제에 나온 식을 보고서 충분히 n(n+1)/2 를 유도해 낼 수 있습니다. 공식을 외우는 것이 중요한 것이 아니고, 해당 문제에서 규칙성을 찾고, (물론 규칙성이 없는 문제도 많습니다), 이 규칙성을 하나의 수식으로 변환시킬 수 있다면 문제를 쉽게 풀어낼 수 있고, 또 이 과정이 공식을 외우는 것보다 훨씬 중요하다고 생각합니다. --보창
- 이렇게도 풀 수 있군요 - 김태훈zyint