U E D R , A S I H C RSS

최소정수의합/조현태

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


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