U E D R , A S I H C RSS

최소정수의합/문보창

소감

코드

~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

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:16
Processing time 0.0216 sec