0
再帰を使用してこのフラクタルパターンを作成しようとしています。再帰を使用してフラクタルパターンを作成する
*
* *
*
* * * *
*
* *
*
* * * * * * * *
*
* *
*
* * * *
*
* *
*
私が実装する必要がある機能はこれです:
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
それは2のべき乗でなければならないと言いますので、あなたは 'パターン(外、n-1、i + 1);を間違って考えているかもしれません。 – Charles
ようこそStackOverflowへ。ヘルプドキュメントの投稿ガイドラインを読み、それに従ってください。 [最小、完全で検証可能な例](http://stackoverflow.com/help/mcve)がここに適用されます。コードを投稿して問題を正確に記述するまでは、効果的にお手伝いすることはできません。 StackOverflowは、コーディングまたはチュートリアルサービスではありません。 – Prune