== C++ == === 느낀점 === 두번째 소스를 먼저 만들어서 그냥 그걸 첫번째에 붙여넣었다. 콜 바이 벨류라도 뭐 편한대로 하다보니..;;ㅁ;; 첫번째 소스의 변수명을 이쁘게 해주려다가 포인터가 들어가고 더 길어져 버렸다. 에잇~ 몰라몰라~~ 훠이훠이~~ (귀차니즘의 압박..ㅎㅎ) 사용하려다 왠지 함수를 잘못 나눈듯한 느낌에 뒤늦게 수정..;; === 소스 === ==== ver.1 ==== {{{~cpp #include using namespace std; void main() { int number_a, number_b; cout << "첫번째 숫자를 입력하세요:"; cin >> number_a; cout << "두번째 숫자를 입력하세요:"; cin >> number_b; cout << "\tx = " << number_a << "\ty = " << number_b << "\n"; int *big_number, *small_number; if (number_a>number_b) { big_number=&number_a; small_number=&number_b; } else { big_number=&number_b; small_number=&number_a; } int temp; while (temp=*big_number%*small_number) { *big_number=*small_number; *small_number=temp; } cout << "\tGCD is " << *small_number << "\n"; } }}} ==== ver.2 ==== {{{~cpp #include using namespace std; void get_GCM(int big_number, int small_number) { int temp; while (temp=big_number%small_number) { big_number=small_number; small_number=temp; } cout << small_number << "\n"; } void main() { int number_a, number_b; cout << "첫번째 숫자를 입력하세요:"; cin >> number_a; cout << "두번째 숫자를 입력하세요:"; cin >> number_b; cout << "The GCD of " << number_a << " and " << number_b << " is "; if (number_a>number_b) get_GCM(number_a, number_b); else get_GCM(number_b, number_a); } }}} === ver.3 === {{{~cpp #include using namespace std; int Get_GCM(int , int ); void main() { int number_a, number_b; cout << "첫번째 숫자를 입력하세요:"; cin >> number_a; cout << "두번째 숫자를 입력하세요:"; cin >> number_b; cout << "The GCD of " << number_a << " and " << number_b << " is "<< get_GCM(number_a,number_b) << "\n"; } int Get_GCM(int number_a, int number_b) { int temp; while (temp=number_a%number_b) { number_a=number_b; number_b=temp; } return number_b; } }}} == Erlang == === 느낀점 === === 소스 === * pr_4.erl {{{ -module(pr_4). -export([getGCD/2]). getSubGCD(NumA, NumB) when 0 == NumA rem NumB -> NumB; getSubGCD(NumA, NumB) -> getSubGCD(NumB, NumA rem NumB). getGCD(NumA, NumB) when NumA > NumB -> getSubGCD(NumA, NumB); getGCD(NumA, NumB) -> getSubGCD(NumB, NumA). }}} * shell {{{ 6> pr_4:getGCD(250, 100). 50 }}} === FeedBack === cout << small_number << "\n"; 이 아니라 cout << big_number << "\n"; 일듯 합니다. 실행은 안해봤지만, small_number=temp; 를 볼 때 , 보나마나 temp 값이 출력될 듯. 하는데. 원리 설명좀.. while 구문이 이해가 안됨..^^ -- 아영 현태. 농활 잘 다녀왔어 ? 짜식~ 고 문자 받고 얼마나 놀랬는지 아니? ㅋㅋㅋ -아영 ㅎㅎ 역시 아영양..^^ 궁금점이 많군..ㅎㅎㅎ 일단 첫번째 질문에서는 small_number 가 맞습니다.^^ 테스트 해봤는데, big_number하면 나누기 전의 값이 그대로 나와버리니.. 6과 9를 넣으면 6이 나오던가??ㅎㅎ {{{~cpp while (temp=big_number%small_number) { big_number=small_number; small_number=temp; } }}} 이 부분이 했갈리는듯 한데..ㅎㅎ음.. 문제네.^^ 남이 봐서 어렵게 작성하다닛.. 사실 저게 {{{~cpp temp=big_number%small_number; while (0!=temp) { big_number=small_number; small_number=temp; temp=big_number%small_number; } }}} 와 같은 뜻이야.^^그런데 귀차나서 두개를 안쪽에 넣어버린거지.^^ while안에보면 ==이 아니라 =인거 보이지?ㅎㅎㅎ 아마 알고리즘이 다 같다보니 전체적인 흐름은 아영이꺼랑 같을꺼야..^^ 그럼 나는 가게일 도우러..^^ 아참.. 농활..즐거웠으..^^ 너두 한번쯤은 그런데 나와바..^^ 몸은 힘들었지만 말야..^^ ㅎㅎ 그리고 놀랐다면 미안..^^ 내가 나중에 밥사줄께 참아줘..ㅎㅎㅎㅎ 아영양의 그 '자기'님께 맞으면 난 죽음..ㅎㅎ - [조현태] = 가 == 인줄 아랏네 ㅋㅋ 이제 이해됐으 ~ temp = big_number%small_number;을 while()속에 넣으면 저런 영향을 끼치는지 이제 알았다네~ 너무 몰라서 그런데 , 혹시 C에서도 써먹을 수 있는건가 ? -- 아영 너무 모르다니..그건 아니닷~~ 음.. 그런데 C에서도 써먹을수 있을껄? ㅎㅎ - [조현태] ---- [LittleAOI] [최대공약수]