本文主要是介绍牛客网刷题 | BC114 圣诞树 (不理解),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目前主要分为三个专栏,后续还会添加:
专栏如下: C语言刷题解析 C语言系列文章 我的成长经历
感谢阅读!
初来乍到,如有错误请指出,感谢!
这道题没搞懂 也没找到视频
水了篇文章
大家有思路可以放到评论区
或者有视频也行
放个链接给我 我去学一学
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>//思路:我们可以观察到树叶部分是由一些相同的三角形构成的,
//树的底部就是处于中间的所输入n层的n个*,所以大体上我们就可以分为2部分来打印int main()
{//一、先打印上面“树叶”部分int n = 0; //层数scanf("%d", &n);int i = 0; //循环控制层数int m = 3 * n; //用于控制打印空格,不直接用3*n,//而是重新定义一个变量,是因为在打印过程中每一层要打印的空格不同,我们需要对m进行变化for (i = 1; i <= n; i++){//打印第i层的第一行int space = m - 1; //三角形前面的空格while (space--){printf(" ");}int k = 0; //因为打印过程中相邻三角形会出现"* "for (k = 0; k < i; k++){printf("* "); //打印每层三角形的第一行}printf("\n");//打印第i层的第二行int space2 = m - 2; //空格少1while (space2--){printf(" ");}for (k = 0; k < i; k++){printf("* * "); //到了第二行相邻三角形间变为了"* * "}printf("\n");//打印第i层的第三行int space3 = m - 3; //空格少1while (space3--){printf(" ");}for (k = 0; k < i; k++){printf("* * * "); //第三行变成了"* * * "}printf("\n");m = m - 3; //每层少打3个空格}//二、底部int bottom = 0;for (bottom = 0; bottom < n; bottom++){int j = 0;for (j = 0; j < 3 * n - 1; j++){printf(" ");}printf("*\n");}return 0;
}
这篇关于牛客网刷题 | BC114 圣诞树 (不理解)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!