모바일 오유 바로가기
http://m.todayhumor.co.kr
분류 게시판
베스트
  • 베스트오브베스트
  • 베스트
  • 오늘의베스트
  • 유머
  • 유머자료
  • 유머글
  • 이야기
  • 자유
  • 고민
  • 연애
  • 결혼생활
  • 좋은글
  • 자랑
  • 공포
  • 멘붕
  • 사이다
  • 군대
  • 밀리터리
  • 미스터리
  • 술한잔
  • 오늘있잖아요
  • 투표인증
  • 새해
  • 이슈
  • 시사
  • 시사아카이브
  • 사회면
  • 사건사고
  • 생활
  • 패션
  • 패션착샷
  • 아동패션착샷
  • 뷰티
  • 인테리어
  • DIY
  • 요리
  • 커피&차
  • 육아
  • 법률
  • 동물
  • 지식
  • 취업정보
  • 식물
  • 다이어트
  • 의료
  • 영어
  • 맛집
  • 추천사이트
  • 해외직구
  • 취미
  • 사진
  • 사진강좌
  • 카메라
  • 만화
  • 애니메이션
  • 포니
  • 자전거
  • 자동차
  • 여행
  • 바이크
  • 민물낚시
  • 바다낚시
  • 장난감
  • 그림판
  • 학술
  • 경제
  • 역사
  • 예술
  • 과학
  • 철학
  • 심리학
  • 방송연예
  • 연예
  • 음악
  • 음악찾기
  • 악기
  • 음향기기
  • 영화
  • 다큐멘터리
  • 국내드라마
  • 해외드라마
  • 예능
  • 팟케스트
  • 방송프로그램
  • 무한도전
  • 더지니어스
  • 개그콘서트
  • 런닝맨
  • 나가수
  • 디지털
  • 컴퓨터
  • 프로그래머
  • IT
  • 안티바이러스
  • 애플
  • 안드로이드
  • 스마트폰
  • 윈도우폰
  • 심비안
  • 스포츠
  • 스포츠
  • 축구
  • 야구
  • 농구
  • 바둑
  • 야구팀
  • 삼성
  • 두산
  • NC
  • 넥센
  • 한화
  • SK
  • 기아
  • 롯데
  • LG
  • KT
  • 메이저리그
  • 일본프로야구리그
  • 게임1
  • 플래시게임
  • 게임토론방
  • 엑스박스
  • 플레이스테이션
  • 닌텐도
  • 모바일게임
  • 게임2
  • 던전앤파이터
  • 마비노기
  • 마비노기영웅전
  • 하스스톤
  • 히어로즈오브더스톰
  • gta5
  • 디아블로
  • 디아블로2
  • 피파온라인2
  • 피파온라인3
  • 워크래프트
  • 월드오브워크래프트
  • 밀리언아서
  • 월드오브탱크
  • 블레이드앤소울
  • 검은사막
  • 스타크래프트
  • 스타크래프트2
  • 베틀필드3
  • 마인크래프트
  • 데이즈
  • 문명
  • 서든어택
  • 테라
  • 아이온
  • 심시티5
  • 프리스타일풋볼
  • 스페셜포스
  • 사이퍼즈
  • 도타2
  • 메이플스토리1
  • 메이플스토리2
  • 오버워치
  • 오버워치그룹모집
  • 포켓몬고
  • 파이널판타지14
  • 배틀그라운드
  • 기타
  • 종교
  • 단어장
  • 자료창고
  • 운영
  • 공지사항
  • 오유운영
  • 게시판신청
  • 보류
  • 임시게시판
  • 메르스
  • 세월호
  • 원전사고
  • 2016리오올림픽
  • 2018평창올림픽
  • 코로나19
  • 2020도쿄올림픽
  • 게시판찾기
  • 오유인페이지
    개인차단 상태
    잉어님의
    개인페이지입니다
    가입 : 10-06-20
    방문 : 1084회
    닉네임변경 이력
    회원차단
    회원차단해제
    게시물ID : programmer_18504
    작성자 : 잉어
    추천 : 0
    조회수 : 1731
    IP : 218.235.***.26
    댓글 : 9개
    등록시간 : 2016/09/24 22:06:18
    http://todayhumor.com/?programmer_18504 모바일
    유클리드호제법으로 최대공약수 구하기 질문있습니다.(C언어)
    옵션
    • 본인삭제금지
    씹어먹는 C언어라는 교재로 공부하고 있습니다.(블로그에 어떤 분이 올리신 책)

    2. 유클리드 호제법을 이용해서 N개의 수들의 최대공약수를 구하는 함수를 만들어보세요.

    이러한 문제 였습니다. 그래서 배열을 이용해서 코드를 짜서 최종적으로 다 만든 것 같습니다.

    유클리드 호제법에 대해서 잠시 설명하자면 두 개의 최대공약수를 구할 때 이러한 방식으로 한다고 합니다.
    예를들어 32와 18 이것은

    gcd(32,18) 로 쓰고, 유클리드호제법에 따라 한 번 연산을 하면
    gcd(18, 14) 가 됩니다.

    즉 gcd(a, b) = gcd(b, a %b) 가 되고.
    b(오른쪽에 있는 수)가 0이 될 때까지 합니다. 
    그래서 gcd(k, 0) 이라면 두 수의 최대공약수는 k가 되는 공식입니다.

    여러개의 수를 이용해야하기 때문에 유클리드 호제법은 다음과 같은 식을 만족합니다.
    예를들어 5개의 경우
    gcd(a, b, c, d, e) =
    gcd((a, b), (c, d), e) =
    gcd(f, g, e) =
    gcd((f, g), e) =
    gcd(h, e) =
    gcd(i ,0) = i

    이러한 방식으로 되게끔 코드를 짰습니다.
    gcd 한 번 실행한 값들은 새로운 배열로 보내서 저장을 해서 
    그 새로운 배열을 다시 gcd하는 방법을 이용했습니다.

    제가 만든 코드와 결과물은 아래와 같습니다.
    (코드가 길어서 짤라서 붙였으니 보시는데 약간 불편함이 있습니다...)


    1.png
    2.png
    3.png
    4.PNG

    코드가 길어 보기가 어려울 수 도 있겠네요. 여튼 오랜시간동안 공부해서 저렇게 만들긴 했습니다. 다른 숫자에도 잘 작동하는 것 같습니다.
    여기서 질문은 제가 저렇게 만들기 전에 코드를 아래와 같이 썼었습니다.

    5.PNG

    코드 완성 전에, 저기 별표 해놓은 부분이 들어가 있었는데요. (완성된 코드에는 저 코드를 지웠습니다.)

    제 생각에는 euclidean 함수에 처음에

    if(put_number == 1) return gcd_number[0];

    이 코드가 있어서 함수가 종료되고 gcd_number[0] 값을 1로 보낼줄 알았는데
    위의 사진과 같이 결과값을 5로 보내고 있습니다.

    왜 이렇게 되는지 알고 싶네요.

    제 생각에는 if(put_number == 1) return gcd_number[0]; 이게 끝나고 나서도
    아래의 여러 명령문을 실행해서 이러한 결과가 나온것 같은데,
    그렇게 한다고 가정을 해도 5가 나올 수 없다고 생각하는데 이상하네요..

    그리고 맨 마지막에 return gcd_number[0]; 이 코드가 있었을 때
    if(put_number == 1) return gcd_number[0]; 에다가 printf("%d", gcd_number[0])을 추가해서 결과값을 보니 1로 맞게 나왔는데
    결국에 출력되는 것은 5가 나오니 어떻게 되는지 모르겠습니다...

    마지막으로 현재 프로그래밍을 공부한지 이제 5개월이 되가고 있는데
    코드를 보고 조언을 해주실게 있다면 해주시면 감사하겠습니다!(__)

    이 게시물을 추천한 분들의 목록입니다.
    푸르딩딩:추천수 3이상 댓글은 배경색이 바뀝니다.
    (단,비공감수가 추천수의 1/3 초과시 해당없음)

    죄송합니다. 댓글 작성은 회원만 가능합니다.

    번호 제 목 이름 날짜 조회 추천
    51
    시게 글을 읽을 때 언뜻 들었던 생각 [1] 잉어 17/12/19 03:32 52 12
    50
    편도 티켓 구매 시 질문드립니다! [6] 본인삭제금지 잉어 17/07/05 09:14 65 0
    49
    러닝과 무릎통증과 스쿼트 [5] 잉어 17/04/21 10:31 97 4
    48
    c++ text UTF-8관련해서 질문드립니다... [3] 본인삭제금지 잉어 17/03/11 00:35 42 0
    47
    [본삭금] 롤풀옵 + 기타 콘솔 게임용인데 한 번 봐주시면.. [6] 본인삭제금지 잉어 17/02/20 17:10 75 0
    46
    (질문!)SDL 라이브러리로 게임 프로그래밍 공부하고 있습니다. [5] 본인삭제금지 잉어 16/12/23 19:26 28 0
    45
    개발할 때 library 사용시... [3] 본인삭제금지 잉어 16/12/21 20:14 42 0
    44
    (질문)CPU 사용률이 높아질때 파워쪽에서 이상한 소리가 납니다. [8] 베스트금지본인삭제금지 잉어 16/10/23 15:18 80 0
    유클리드호제법으로 최대공약수 구하기 질문있습니다.(C언어) [9] 본인삭제금지 잉어 16/09/24 22:06 32 0
    41
    visual studio prompt 궁금한게 있습니다. [6] 본인삭제금지 잉어 16/09/13 16:34 39 0
    40
    C++에서 컴파일러가 왜 이러는지에 대한 궁금증이 있어서 질문드립니다. [10] 본인삭제금지 잉어 16/08/28 18:39 52 0
    39
    첫 조립을 했는데.... 모니터가 안나옵니다. [11] 본인삭제금지 잉어 16/08/20 23:20 103 0
    38
    조립까진 완료! [2] 잉어 16/08/19 17:34 153 1
    37
    프로그래밍 뉴비가 할 수 있는 것들..(질문) [9] 본인삭제금지 잉어 16/08/11 00:18 42 0
    36
    (본삭금) 견적 이렇게 주문할 예정인데 한 번 봐주실 수 있을까요? [3] 본인삭제금지 잉어 16/08/05 13:13 92 0
    35
    SICP 책에서 연습문제 공부하는데 질문이 있습니다.(Lisp언어) [8] 본인삭제금지 잉어 16/07/29 12:29 40 0
    34
    [본삭금] 3D 그래픽 프로그래밍용 노트북 질문드립니다. [3] 본인삭제금지 잉어 16/07/22 20:33 29 0
    33
    유니세프 후원하다가 돈이 부족해서 중단한 학생인데 잉어 16/07/21 23:56 102 4
    32
    가장 중요한 턱걸이 운동 3가지 [3] 펌글 잉어 16/07/18 23:52 65 4
    31
    baby 배틀! 펌글 잉어 16/07/06 23:41 15 3
    30
    Mastering Programming(KENT BECK) [1] 잉어 16/06/09 02:53 51 1
    29
    stack overflow 2016 개발자 설문조사 결과 [2] 잉어 16/06/05 21:22 56 6
    28
    프로그래머 진로에 관하여 여쭤볼게 있습니다. [7] 본인삭제금지외부펌금지 잉어 16/05/10 01:07 80 1
    27
    더민주 호남 패배의 원인? [5] 잉어 16/04/13 20:41 144 1
    26
    지금이 중요한 시기라고 생각합니다. [1] 잉어 16/03/01 03:21 49 0
    25
    [본삭금]노트북 업그레이드 질문드립니다.(SSD와 RAM) [8] 본인삭제금지 잉어 16/02/21 18:42 36 0
    24
    한성 u34s 노트북 ssd 업그레이드 질문드립니다. [3] 본인삭제금지 잉어 16/02/13 08:00 40 0
    23
    그들의 전략은 서로 싸우게 하는 것이다. [1] 잉어 16/02/02 05:01 200 13
    22
    혼자 있는게 자랑! 잉어 15/02/21 11:23 28 0
    [1] [2]
    단축키 운영진에게 바란다(삭제요청/제안) 운영게 게시판신청 자료창고 보류 개인정보취급방침 청소년보호정책 모바일홈