题解 | #带空格直角三角形图案#

带空格直角三角形图案

https://www.nowcoder.com/practice/192d1039c3d44155bb868073f5482670

*

* *

* * *

* * * *

* * * * *

根据上面的图,我们可以分析出这个是先输入需要的行数,之后每行先输入空格再输入* ,所以我们可以将空格全部补齐,将整个看做一个矩形,可以分析出空格是输入的行数减去当前行的*个数,所以k 所代表的 * 是递增,j 所代表的空格是递减。了解到庆康huo可以看下面代码。

#include<stdio.h>
int main() {

    int n = 0;
    while (scanf("%d", &n) != EOF) {//控制输入,
        for (int i = 1; i <= n; i++) {//通过 i 来控制输出的行数,
            for (int j = n - i; j > 0; j--) {//通过 j 控制空格的输出,前面提到j 是递减,所以从n-1开始,一直到j=1结束。
                printf("  ");
            }
            for (int k = 1; k <= i; k++) {//通过 k 控制*的输出,因为是递增,所以跟进i的脚步,i是行,i对应的行就有对应个*,所以k的范围是就是 <=i 
                printf("* ");
            }
            printf("\n");//没循环完一行后换行
        }
    }


    return 0;
}

全部评论

相关推荐

10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务