U E D R , A S I H C RSS

최대공약수/조현태

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 가 맞습니다.^^
테스트 해봤는�, 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�서� �먹�수 있�껄? ㅎㅎ - 조현태


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