이 문제에서는 두 개의 숫자 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