Я пытаюсь создать этот фрактальный узор, используя рекурсию.Создание фрактальной модели с использованием рекурсии
*
* *
*
* * * *
*
* *
*
* * * * * * * *
*
* *
*
* * * *
*
* *
*
Функция, которую мне нужно реализовать это:
void pattern(ostream& outs, unsigned int n, unsigned int i);
// Precondition: n is a power of 2 greater than zero.
// Postcondition: A pattern based on the above example has been
// printed to the ostream outs. The longest line of the pattern has
// n stars beginning in column i of the output. For example,
// The above pattern is produced by the call pattern(cout, 8, 0).
До сих пор, это то, что у меня есть:
void pattern(ostream& outs, unsigned int n, unsigned int i){
if (n == 1){
outs << "*"<<endl;
}
else{
pattern(outs, n/2, i + 1);
for (int k = 0; k < n; k++){
outs << "* ";
}
outs<<endl;
for (int k = 0; k < i; k++){
outs << ' ';
}
pattern(outs, n/2, i + 1);
}
}
Мой код выводит то, что должно выводится, но количество пробелов выключено. Как я могу это исправить?
@ c650 Любые подсказки, которые или что-то, что может заставить меня начать? – user2896120
В нем говорится, что он должен быть степенями двух, так что, возможно, вы думаете о 'pattern (outs, n - 1, i + 1),' wrong. – Charles
Добро пожаловать в StackOverflow. Прочтите и следуйте инструкциям по отправке в справочной документации. [Минимальный, полный, проверяемый пример] (http://stackoverflow.com/help/mcve) применим здесь. Мы не можем эффективно помочь вам, пока вы не опубликуете свой код и не сможете точно описать проблему. StackOverflow не является кодовым или учебным сервисом. – Prune