Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

최소정수의합/조현태

From ZeroWiki

C++

느낀점

이런 실수를..;; 고등학교때 항상 수열에서 n-1까지의 합을 구하는 버릇때문에 공식을 잘못 적었군요.^^
수정하였습니다.

소스

//1 + 2 + 3 + ..... + n >= 3000 을 만족하는 최소 n과 그것의 합을 구하는 프로그램을 작성
#include <iostream>

using namespace std;

int sum(int);

void main()
{
	const int COMPARENUM=3000;
	int n=1;
	while (COMPARENUM>sum(n))
		++n;
	cout << "최소의 정수: " << n << "  합: "<< sum(n);
}

int sum(int end_number)
{
	if (1==end_number)
		return 1;
	else
		return end_number*(end_number+1)/2;
}

Erlang

느낀점

미지의 세계 -_ -ㅋ

소스

  • pr_2.erl
-module(pr_2).
-export([minSum/2]).
minSum(I, SumNum) when SumNum >= 3000 -> {I - 1, SumNum};
minSum(I, SumNum) -> minSum(I + 1, SumNum + I).
  • shell
5> c(pr_2).          
{ok,pr_2}
6> pr_2:minSum(1, 0).
{77,3003}

FeedBack

  • 1에서 n수까지 합 공식을 사용한것 같은데, 알고리즘 측면으로 공부하는 것이라서, 원리적인 알고리즘을 사용하는 코드를 사용하면 좋을 것 같네요. 비록 제 생각이긴 하지만, 복잡한 문제에서는 공식을 알 수 없을 것 같아서요^^ -허아영
 └ 이 경우에는 공식을 안쓰는 편이 더 빠르답니다.^_^ 그래도 한번 써보고 싶었어요. 고등학교 수학의 추억이 떠올라서.^_^- 일단 반성..ㅠ.ㅜ 앞으로 가급적 정상적으로 수행하도록 하겠습니다.^^조현태

LittleAOI 최소정수의합