>백엔드 개발 >C++ >재귀 연습 문제와 해결책

재귀 연습 문제와 해결책

PHPz
PHPz앞으로
2023-09-15 10:05:08812검색

재귀 연습 문제와 해결책

이 글에서는 재귀 연습 문제와 자세한 해결 방법에 대해 논의하겠습니다.

먼저 재귀가 무엇이고 어떻게 작동하는지 이해해 봅시다:

Recursion - 재귀는 문제를 해결하기 위해 함수나 메서드가 자신을 여러 번 호출하는 프로그래밍 기술입니다. 이 기능은 문제를 더 작은 하위 문제로 나누고 기본 사례에 도달할 때까지 해결합니다.

기본 사례는 함수가 자체 호출을 중지하고 제한된 시간 내에 결과를 반환하도록 보장하는 중지 조건입니다.

재귀는 복잡한 문제를 해결하는 강력한 기술이지만 무한 루프를 방지하고 함수가 여러 번 재귀적으로 호출될 때 함수가 올바르게 종료되도록 신중하게 설계하는 것이 중요합니다.

질문 1

재귀와 관련된 가장 기본적인 질문입니다.

팩토리얼 개념을 이용하여 주어진 숫자의 팩토리얼을 찾습니다.

C++로 구현

으아아아

출력

으아아아

질문 2

이 문제에서는 1부터 시작하는 수열의 n번째 숫자를 인쇄해야 합니다. 여기서 i번째 숫자는 일반적으로 피보나치 수열로 알려진 이전 두 숫자의 합입니다.

C++로 구현

으아아아

출력

으아아아

질문 3

주어진 숫자의 자릿수 합계를 계산하세요

C++로 구현

으아아아

출력

으아아아

질문 4

숫자의 "힘" 값을 계산합니다.

이 질문에서는 "숫자"와 "제곱"이라는 두 숫자가 주어지며, 우리의 임무는 숫자 "숫자"의 "제곱"의 거듭제곱을 구하는 것입니다.

C++로 구현

으아아아

출력

으아아아

질문 5

두 숫자의 GCD(최대 공약수)를 구하세요.

GCD는 Greatest Common Divisor(최대 공약수)의 약자로, 두 개 이상의 숫자를 나머지 없이 나눌 수 있는 가장 큰 수입니다. 이 숫자의 최고공약수(HCF)라고도 합니다.

14와 28이라는 두 개의 서로 다른 숫자가 있다고 가정해 보겠습니다.

14의 약수는 1, 2, 7, 14입니다.

28의 약수는 1, 2, 4, 7, 14, 28입니다.

그러면 이 두 숫자인 1, 2, 7, 14의 공통인수를 찾을 수 있습니다. 14와 28을 나머지 없이 나눌 수 있는 가장 큰 수는 14이므로, 14와 28의 최대공약수는 14입니다.

C++로 구현

으아아아

출력

으아아아

질문 6

배열을 역순으로 인쇄

n개의 정수를 포함하는 배열을 얻었고 우리의 임무는 첫 번째 숫자가 마지막 숫자, 두 번째 숫자가 끝에서 두 번째 숫자 등의 순서로 동일한 배열을 인쇄하는 것입니다.

C++로 구현

으아아아

출력

으아아아

기본적인 재귀 수준을 익히기 위한 몇 가지 기본 연습 문제가 있습니다 -

문자열이 회문인지 재귀적으로 확인하는 함수를 작성하세요.

특정 숫자의 계승값을 찾는 꼬리 재귀를 사용하는 함수를 작성하세요.

하노이탑 문제를 해결하는 함수를 작성하세요.

정렬된 배열에 대해 이진 검색을 수행하는 함수를 작성하세요.

위 내용은 재귀 연습 문제와 해결책의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제