POJ2876——递归

来源:互联网 发布:绘制结构图软件 编辑:程序博客网 时间:2024/05/08 01:11

题目描述:

有3^n个-,每次将中间1/3变成空格,最后输出。

大致思路:

很简单的递归……或者直接可以发现sn=sn-1+空格+sn-1

代码:

#include <iostream>#include <cstdio>#include <string>using namespace std;const int maxn = 13;int s[maxn];string ans[maxn];int main() {    //freopen("a.out","w",stdout);    s[0] = 1;    for (int i = 1; i <= 12; i++)        s[i] = s[i-1]*3;    ans[0] = "-";    ans[1] = "- -";    for (int i = 2; i <= 12; i++) {        ans[i] = ans[i-1];        for (int j = 0; j < s[i-1]; j++) {            ans[i] += " ";        }        ans[i] += ans[i-1];    }    int n;    cin>>n;    cout<<ans[n]<<endl;    while (cin>>n) {        cout<<ans[n]<<endl;    }    /*for (int i = 0; i < 13; i++) {        cout<<i<<ans[i]<<endl;    }*/}


0 0