C++ ¶
느낀점 ¶
두번째 소스를 먼저 만들어서 그냥 그걸 첫번째에 붙여넣었다.
콜 바이 벨류라도 뭐 편한대로 하다보니..;;ㅁ;;
첫번째 소스의 변수명을 이쁘게 해주려다가 포인터가 들어가고 더 길어져 버렸다.
에잇~ 몰라몰라 훠이훠이 (귀차니즘의 압박..ㅎㅎ)
콜 바이 벨류라도 뭐 편한대로 하다보니..;;ㅁ;;
첫번째 소스의 변수명을 이쁘게 해주려다가 포인터가 들어가고 더 길어져 버렸다.
에잇~ 몰라몰라
사용하려다 왠지 함수를 잘못 나눈듯한 느낌에 뒤늦게 수정..;;
소스 ¶
ver.1 ¶
~cpp #include <iostream> 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 <iostream> 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 <iostream> 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=temp; 를 볼 때 , 보나마나 temp 값이 출력될 듯. 하는데.
원리 설명좀.. while 구문이 이해가 안됨..^^ -- 아영
현태. 농활 잘 다녀왔어 ? 짜식~ 고 문자 받고 얼마나 놀랬는지 아니? ㅋㅋㅋ -아영
ㅎㅎ 역시 아영양..^^ 궁금점이 많군..ㅎㅎㅎ
일단 첫번째 질문에서는 small_number 가 맞습니다.^^
테스트 해봤는데, big_number하면 나누기 전의 값이 그대로 나와버리니.. 6과 9를 넣으면 6이 나오던가??ㅎㅎ
일단 첫번째 질문에서는 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안에보면 ==이 아니라 =인거 보이지?ㅎㅎㅎ
아마 알고리즘이 다 같다보니 전체적인 흐름은 아영이꺼랑 같을꺼야..^^
그럼 나는 가게일 도우러..^^
아참.. 농활..즐거웠으.. 너두 한번쯤은 그런데 나와바.. 몸은 힘들었지만 말야..^^
ㅎㅎ 그리고 놀랐다면 미안..^^ 내가 나중에 밥사줄께 참아줘..ㅎㅎㅎㅎ 아영양의 그 '자기'님께 맞으면 난 죽음..ㅎㅎ - 조현태
while안에보면 ==이 아니라 =인거 보이지?ㅎㅎㅎ
아마 알고리즘이 다 같다보니 전체적인 흐름은 아영이꺼랑 같을꺼야..^^
그럼 나는 가게일 도우러..^^
아참.. 농활..즐거웠으.. 너두 한번쯤은 그런데 나와바.. 몸은 힘들었지만 말야..^^
ㅎㅎ 그리고 놀랐다면 미안..^^ 내가 나중에 밥사줄께 참아줘..ㅎㅎㅎㅎ 아영양의 그 '자기'님께 맞으면 난 죽음..ㅎㅎ - 조현태
= 가 == 인줄 아랏네 ㅋㅋ 이제 이해됐으 ~
temp = big_number%small_number;을 while()속에 넣으면 저런 영향을 끼치는지 이제 알았다네~
너무 몰라서 그런데 , 혹시 C에서도 써먹을 수 있는건가 ? -- 아영
너무 몰라서 그런데 , 혹시 C에서도 써먹을 수 있는건가 ? -- 아영
너무 모르다니..그건 아니닷~~ 음.. 그런데 C에서도 써먹을수 있을껄? ㅎㅎ - 조현태