打印字符题综合经验分享以及讲解(思路推理)(基础)

打印字符题综合经验分享以及讲解(思路推理)

先看行数,在现阶段里,一般是 n 行,所以先在最外层写一个 for(1~n)。再看每一排的个数。

      *
     ***
    *****
   *******
  *********

先列举每一行的数量:1,3,5,7,9;发现每每次加了 2 ,所以用 2 作为基准值排列:2,4,6,8,10;发现每一个数都 多了 1 ,所以减去,然后得到结果: i \times 2 - 1 ,在结合上之前的 n 行的 for 循环可以得到这样的代码:

for(int i=1;i<=n;i++){
    for(int j=1;j<=i*2+1;j++){
        cout<<"*";
    }
    cout<<endl;
}

可是我们还差了一个部分,空格。

还是找规律:5,4,3,2,1;,这次是不是很简洁明了?再结合 i 推理答案。

i 1 2 3 4 5
空格数 5 4 3 2 1

经观察可以得出结论:n-i+1;

最后再把程序一加:

for(int i=1;i<=n;i++){
    for(int j=1;j<=n-i+1;j++)cout<<" ";
    for(int j=1;j<=i*2+1;j++){
        cout<<"*";
    }
    cout<<endl;
}

是不是很简单?

总结:打表格找规律。

6 个赞

顶顶顶

1 个赞