翻转直角三角形图案

翻转直角三角形图案

http://www.nowcoder.com/questionTerminal/2cdea429fa414fbba26e6c821724ca06

分析:

本题与https://blog.nowcoder.net/n/1d0b3c07efcc479f8e52f955694e66aa
类似,与之不同的是图案要倒着打印,这里只需自减循环即可。

题解:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n = 0;
    while(scanf("%d", &n) != EOF) {
        //外循环控制打印的行数
        for(int i = n; i > 0; --i) {
            //内循环控制列数,当前行的列数不能大于当前行
            for(int j = 1; j <= i; ++j) {
                //如果 i == j即输出星号,否则输出空格
                if(j == i)
                    printf("*\n");
                else
                    printf("* ");
            }
        }
    }
    return 0;
}

题解2:

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n = 0;
    //题解2思路和上述一样,不同之处在于将for循环换成了while循环
    while(scanf("%d", &n) != EOF) {
        int i = n;
        while(i > 0) {
            int j = 1;
            while(j <= i) {
                if(j == i)
                    printf("*\n");
                else
                    printf("* ");
                ++j;
            }
            --i;
        }
    }
    return 0;
}

总结:

逆序自减循环的使用,以及两重循环的使用。

全部评论

相关推荐

头像
11-21 11:39
四川大学 Java
是红鸢啊:忘了还没结束,还有字节的5k 违约金
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务