소ê°� ¶
코드 ¶
~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










