میتوانیم از روش بازگشتی استفاده کنیم. در اینجا یک تابع بازگشتی برای ایجاد اعداد سه رقمی با ارقام ۱، ۲ و ۳ نوشته شده است:
#include <iostream>
#include <string>
void generateNumbers(std::string num, int digits) {
if (digits == 0) {
std::cout << num << std::endl;
return;
}
generateNumbers(num + "1", digits - 1);
generateNumbers(num + "2", digits - 1);
generateNumbers(num + "3", digits - 1);
}
int main() {
generateNumbers("", 3);
return 0;
}
این برنامه اعداد سه رقمی را با استفاده از تابع بازگشتی ایجاد میکند. هر بار که تابع
generateNumbers
فراخوانی میشود، یک رقم به عدد اضافه میکند و سپس خودش را با تعداد رقمهای کمتر فراخوانی میکند. این فرآیند تا زمانی ادامه دارد که تعداد رقمها به صفر برسد، در این صورت عدد نهایی چاپ میشود. این روش از حلقه
for
استفاده نمیکند.