19번 문제랑 20번 문제가 이해가 안 됩니다
19번 문제는 풀어보니까 답이 f(13)인거 같은데 답은 2번이고
20번 문제는 어떻게 돌아가는지 잘 모르겠습니다
다음검색
댓글
댓글 리스트-
작성자홍재연 작성시간 23.06.02 19번
왜 답 f(13)인 것 같습니까?
답변하기 전에 원시코드 관련 문제는 직접 컴파일하고 스스로 문제를 분석하면서 공부해야 합니다. -
작성자홍재연 작성시간 23.06.02 // 19 : 간단하게 해설하면 다음과 같다.
⋅for(b=0; x!=0; x>>1) → x값을 우측으로 1bit씩 시프트
↓x값을 우측으로 1bit씩 시프트시키면서 다음 조건문이 참이되면 b 값이 1증가
⋅if(x&01) b++;
↓
⋅연산자 &는 비트 and 연산
⋅조건 x&01이 참이 되기 위해서는 x에 1이 존재해야 한다.
↓
⋅x = 7을 4bit 2진수로 고치면 0111 → 1이 3개 존재하므로 조건 x&01은 3번 참이 됨, b = 3
⋅x = 10을 4bit 2진수로 고치면 1010 → 1이 2개 존재하므로 조건 x&01은 2번 참이 됨, b = 2
⋅x = 11을 4bit 2진수로 고치면 1011 → 1이 3개 존재하므로 조건 x&01은 3번 참이 됨, b = 3
⋅x = 13을 4bit 2진수로 고치면 1101 → 1이 3개 존재하므로 조건 x&01은 3번 참이 됨, b = 3
⋅x = 14를 4bit 2진수로 고치면 1110 → 1이 3개 존재하므로 조건 x&01은 3번 참이 됨, b = 3
⋅호출할 때 결과가 다른 하나는 f(10)이다.
⋅단지, 10을 2진수로 1010으로 1이 2개 존재하기 때문 -
작성자홍재연 작성시간 23.06.02 20번 : 원시코드 중에서 모르는 부분이 무엇인가요?
하나도 모르는 것은 아니지 않습니까?
-
작성자홍재연 작성시간 23.06.02 20번 :
// 소수 구하는 알고리즘으로 출력되는 내용은 다음과 같다.
⋅2 3 5 7 11 13 17 19 ....... 101 103 107 109 113 127
⋅즉, 2에서 130까지 정수 중에서 소수를 출력한다.
⋅소수 구하는 알고리즘이라는 것을 모르면 변수테이블을 그려서 하나씩 추적하는 방법밖에 없다. -
작성자홍재연 작성시간 23.06.02 그리고
앞으로 질문은 가능한 각 공부방에서 하세요.
질문 내용은 가능한 한 문제씩 분리해서 올려 주세요.