列表

详情


BC114. 圣诞树

描述

今天是圣诞节,牛牛要打印一个漂亮的圣诞树送给想象中的女朋友,请你帮助他实现梦想。

输入描述

输入圣诞树的高度h,

输出描述

输出对应的圣诞树

示例1

输入:

1

输出:

  *  
 * * 
* * *
  *

说明:

示例2

输入:

2

输出:

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

说明:

示例3

输入:

3

输出:

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

说明:

原站题解

C 解法, 执行用时: 2ms, 内存消耗: 484KB, 提交时间: 2022-06-15

#include<stdio.h>
int main()
{
    int n;
    while(~scanf("%d",&n))
    {
        int i,j,k,b;
        b=3*n;
        for(i=0;i<n;i++)
        {
            for(j=0;j<b-1;j++)
            {
                printf(" ");
            }
            for(k=0;k<=i;k++)
            {
                printf("*     ");
            }
            printf("\n");
            for(j=0;j<b-2;j++)
            {
                printf(" ");
            }
            for(k=0;k<=i;k++)
            {
                printf("* *   ");
            }
            printf("\n");
            for(j=0;j<b-3;j++)
            {
                printf(" ");
            }
            for(k=0;k<=i;k++)
            {
                printf("* * * ");
            }
            printf("\n");
            b=b-3;
        }
        for(i=0;i<n;i++)
        {
            for(j=0;j<3*n-1;j++)
            {
                printf(" ");
            }
            printf("*\n");
        }
    }
    return 0;
}

C 解法, 执行用时: 3ms, 内存消耗: 348KB, 提交时间: 2022-08-03

#include<stdio.h>
int main(void){
    int h;
    scanf("%d",&h);
    for(int i = 1;i <= 3 * h;i++){  
        for(int j = 1;j <= (i + 2) / 3 ;j++){
            if(j == 1){
                for(int k = 1;k <= h - ((i + 2) / 3);k++){
                    printf("   ");
                }
            }
            if(i % 3 == 1){
                printf("  *   ");
            }else if(i % 3 == 2){
                printf(" * *  ");
            }else{
                printf("* * * ");
            }
        }
        printf("\n");
    }
    for(int l = 1;l <=h;l++){
        for(int m = 1;m <= (6 * h - 1) / 2;m++){
            printf(" ");
        }
        printf("*\n");
    }
    return 0;
}

C 解法, 执行用时: 3ms, 内存消耗: 384KB, 提交时间: 2022-07-30

#include<stdio.h>

int main()
{
    int n=0;
    int c=0;//用于控制最后的数柄,尾巴
    scanf("%d",&n);//n==2
    int i,j,k;
    int d=3*n;//d==6
    for(i=1;i<=n;i++)
    {
        for(j=d-1;j>0;j--)
        {
            printf(" ");
        }
        for(k=1;k<=i;k++)
        {
            printf("*     ");
        }
        printf("\n");
        for(j=d-2;j>0;j--)
        {
            printf(" ");
        }
        for(k=1;k<=i;k++)
        {
            printf("* *   ");
        }
        printf("\n");
        for(j=d-3;j>0;j--)
        {
            printf(" ");
        }
        for(k=1;k<=i;k++)
        {
           printf("* * * "); 
        }
        printf("\n");
        d-=3;
    }
    while(c<n)
    {
        for(i=1;i<=(6*n-1)/2;i++)
        {
            printf(" ");
        }
        printf("*\n");
        c++;
    }
    return 0;   
}

C 解法, 执行用时: 3ms, 内存消耗: 384KB, 提交时间: 2022-07-26

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

    while (~scanf("%d", &n)) {
        for (int i = 1; i <= 3 * n; i++) { //圣诞树头
            if (i % 3 == 1) { //第一层
                for (int j = i; j < 3 * n; j++)
                    printf(" ");
                for (int k = i; k > 0; k -= 3)
                    printf("*     ");
                printf("\n");
            }else if (i % 3 == 2){//第二层
                for (int j = i; j < 3 * n; j++)
                    printf(" ");
                 for (int k = i; k > 0; k -= 3)
                    printf("* *   ");
                 printf("\n");
            }else if (i % 3 == 0){//第3层
                for (int j = i; j < 3 * n; j++)
                    printf(" ");
                 for (int k = i; k > 0; k -= 3)
                    printf("* * * ");
                 printf("\n");
            }

        }
        for (int i = 1; i <= n; i++){
            for (int i = 1; i < 3 * n; i++)
                printf(" ");
            printf("*\n");
        }

    }
    return 0;
}

C 解法, 执行用时: 3ms, 内存消耗: 384KB, 提交时间: 2022-06-23

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>
int main()
{
	int c = 1;
	int n = 0;
	scanf("%d", &n);
	int d = 3 * n;
	for (int i = 1; i <= n; i++)
	{
		for (int a = d - 1; a>0; a--)//
		{
			printf(" ");
		}
		for (int k = 1; k <= i; k++)
		{
			printf("*     ");
		}
		printf("\n");
		for (int a = d - 2; a > 0; a--)
		{
			printf(" ");
		}
		for (int k = 1; k <= i; k++)
		{
			printf("* *   ");
		}
		printf("\n");
		for (int a = d - 3; a > 0; a--)
		{
			printf(" ");
		}
		for (int k = 1; k <= i; k++)
		{
			printf("* * * ");
		}
		printf("\n");
		d = d - 3;
	}
	for (int i = 1; i <= n;i++)
	{
		for (int i = 1; i <= (6 * n - 1) / 2; i++)
		{
			printf(" ");
		}
		printf("*\n");

	}
	return 0;
}

上一题