250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 무료 악보 프로그램
- 삼성기출
- 대중음악화성
- 화음분석
- ableton live 12
- syncroom
- DP
- Java
- 음계구조
- code tree
- mode chord
- 마법사상어와 블리자드
- 음정이론
- 취준
- 코딩테스트
- 코테
- 음악작곡기초
- 공대생 자소서
- 삼성SW Expert Academy
- SW 직군
- 알고리즘
- 드럼Tab악보
- 화성학응용
- 모드코드
- 스케일분석
- 평행조
- 모달진행
- 삼성전자
- 코드차용
- 코드트리
Archives
- Today
- Total
Code Beat
[Code Tree] 1까지 나누는 재귀함수 본문
728x90
정수 n이 주어졌을 때, n이 짝수면 2로, 홀수면 3으로 나누어 나눈 몫을 취하는 작업을 n에서 1이 될때까지 반복하고 나누는 작업을 거칠때마다 나오는 결과값을 출력하는 프로그램을 재귀함수를 이용하여 작성해보세요.
입력
1 <= n <= 1,000
출력
첫 번째 줄에 모든 출력값 사이에 공백을 두고 출력.
ex )
입력
124
출력
124 62 31 10 5 1
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
while(n){
cout << n << " ";
if(n % 2 == 0) n /= 2;
else n /= 3;
}
return 0;
}
*재귀함수 문제이지만 반복문으로 풀었고 n이 커질 수록 재귀는 피하는 것이 함수 호출 stack을 줄이는 면에서 좋다.
**재귀함수의 경우 N이 매우 커지고 같은 동작을 반복 할 때, DP 문제로 나올 수 있다.
(n이 여러번 주어지고 1까지 가기위해 거치는 숫자의 개수를 구하는 등의 형식으로 변형 가능)
728x90
'Code > Code Tree' 카테고리의 다른 글
[Code Tree] 범위 내의 소수 2 (0) | 2024.02.26 |
---|---|
[Code Tree] 거듭제곱을 출력하는 함수 (0) | 2024.02.26 |
[Code Tree] 더하기 사이클 (0) | 2024.02.25 |
[Code Tree] 효율적으로 분배하기 (0) | 2024.02.25 |
[Code Tree] 삼성 SW 역량테스트 기출 풀이 (1) | 2024.02.17 |