Попытка добиться чего-то подобного с помощью рекурсии:
if (m > n) return;
Foo 1 // no tabs
Foo 2 // \t
Foo 3 // \t\t
Foo 2 // \t
Foo 1 // no tabs
У меня есть функция, которая принимает 2 параметра: void indent(int m, int n);
(вызывающий номер от m до n).
Пока я понял это очень много:
- Пока m <= n, продолжайте вызывать функцию.(базовый случай) </strong>
- Вывести первую строку без вкладок setw (0)
- Вызов функции рекурсивно с шагом m + 1. setw (4 * m)
- Печать первой строки без вкладок (снова). setw (0)
Я на правильном пути?Мой псевдокод правильный, по крайней мере?
Кроме того, есть ли способ выразить вкладки численно?Я не могу придумать, как использовать tab \ t, используя рекурсию или итерацию.
Обновление : Я понял это :).cout << setw(4*m);
прямо перед тем, как cout << "Foo";
добьется цели.При первом вызове m = 0, поэтому setw (0), при втором вызове setw (4), затем setw (8) и так далее.Теперь мне просто нужно напечатать текст назад на 0 вкладок.