이 문제에서는 두 개의 숫자 N과 K가 주어집니다. 우리의 임무는 루프를 사용하지 않고 숫자 시리즈를 인쇄하는 프로그램을 만드는 것입니다.
인쇄될 시리즈는 n에서 시작하여 0 또는 음수가 될 때까지 k만큼 뺍니다. 그 후, 다시 n이 될 때까지 k를 추가하기 시작합니다. 이 과정에서 루프를 사용할 수 없습니다.
문제를 이해하기 위해 예를 들어 보겠습니다.
입력
n = 12 , k = 3
출력
12 9 6 3 0 3 6 9 12
루프를 사용하지 않고 이 문제를 해결하려면 재귀를 사용합니다. 스스로를 다시 호출하는 재귀 함수를 만들고 숫자 값을 계속 확인하여 덧셈이나 뺄셈 중 어떤 연산이 숫자에 해당하는지 확인합니다.
이 함수는 값을 빼거나 더해야 하는지 여부를 추적하는 데 도움이 되는 플래그를 사용합니다.
루프를 사용하지 않고 숫자 시리즈를 인쇄하는 C 프로그램
// 루프를 사용하지 않고 숫자 시리즈를 인쇄하는 C 프로그램
예시
#include <iostream>
using namespace std;
void PrintSeriesRec(int current, int N, int K, bool flag){
cout<<current<<"\t";
if (current <= 0)
flag = !flag;
if (current == N && !flag)
return;
if (flag == true)
PrintSeriesRec(current - K, N, K, flag);
else if (!flag)
PrintSeriesRec(current + K, N, K, flag);
}
int main(){
int N = 12, K = 4;
cout<<"The series is : \n";
PrintSeriesRec(N, N, K, true);
return 0;
} 출력
시리즈는 -
12 8 4 0 4 8 12