※ 引述《cutekid (可爱小孩子)》之铭言:
: 我用 C 写
: main(void)
: {
: int n=5,k=2*n-1;
: for(int i=0;i<n*k;i++){
: if(abs(i-i/k*k-n+1)>i/k) putchar(' ');
: else putchar('*');
: if((i+1)%k==0) puts("");
: }
: }
: 执行网址: https://rextester.com/IKCI74317
补充一下这个范例的思路
一、基本的做法
会使用两个循环,一个回圈控制输出每一行,内层的循环(Nested Loop)则控制
每一行显示的内容。
二、使用一个循环的做法
假设 N = 3
*
***
*****
那个其实你要输出的是 15 的字符,这十五个字符包含“空白字符、星号、换行
字符”,如果把它依序写下来的话会是
_ _ * + _ * * * + * * * * * +
注:上面用底线表示空白字符,加号表示换行字符
顺着这个思路你就可以写出一个循环的写法了