xtu oj 1397 Patchouli的金字塔

Patchouli的金字塔

Submit Code ] [ Top 20 Runs ] [ Runs Status ]
Acceteped : 15 Submit : 27
Time Limit : 1000 MS Memory Limit : 65536 KB

Description

Patchouli的金字塔

Patchouli想要绘制一个金字塔。金字塔的图案由n个正三角形和倒三角形堆叠而成,具体的绘制方法如下:

  • 每个三角形由*/-组成,分别代表三角形的顶点和三条边。

  • 第一行只包含一个正三角形,其余各行的三角形按照”正三角形,倒三角形,正三角形,倒三角形,…… “的顺序紧致排列。

  • 除最后一行外,每一行的三角形比上一行多2个。一共输出n个三角形。

例如,n=1时,图案如下:

  *
 / 
* - *

n=2时,图案如下:

    *
   / 
  * - *
 / 
* - *

n=3时,图案如下:

    *
   / 
  * - *
 /  /
* - *

n=7时,图案如下:

      *
     / 
    * - *
   /  / 
  * - * - *
 /  / 
* - * - *

Patchouli想知道n个三角形组成的金字塔的图案是怎样的?

输入

第一行包含一个正整数T(1≤T≤100),表示样例的个数。 接下来的T行,每行包含一个正整数n(1≤n≤100),表示金字塔中的三角形的个数。

输出

对于每个样例输出对应的图案。每行的行末不包含多余的空格。

样例输入

4
1
2
3
4

样例输出

  *
 / 
* - *
    *
   / 
  * - *
 / 
* - *
    *
   / 
  * - *
 /  /
* - *
    *
   / 
  * - *
 /  / 
* - * - *
#include<stdio.h>
int main()
{
    int s;
    scanf("%d",&s);
    while(s--)
    {
    	int n,g,i,j,t,k;
    	scanf("%d",&n);
        for(g=0,t=n;t>0;g++,t=t-k)
        {
        	k=2*g+1;//g是层数 
        }
        for(t=0;t<2*g;t++)
        {
        	printf(" ");
        }
        printf("*n");
        for(i=0;i<g;i++)
        {
        	for(t=0;t<2*(g-i)-1;t++)
        	{
        		printf(" ");
        	}
        	printf("/ \");
        	for(t=n,j=i-1;j>=0;j--)//求出在该层的第几位t 
        	{
        		k=2*j+1;	
        		t=t-k;
        	}
        	for(k=1;k<=t-1&&k<=2*i;k++)
        	{
        		if(k%2!=0)
        		{
        			printf(" /");
        		}
        		else
        		{
        			printf(" \");
        		}
        	}//分奇偶 
        	printf("n");
        	for(j=0;j<2*(g-i)-2;j++)
        	{
        		printf(" ");
        	}
        	printf("* - *");
        	for(k=1;k<=t-1&&k<=2*i;k++)//与上难点相似 
        	{
        		if(k%2!=0)
        		{
        			continue;
        		}
        		else
        		{
        			printf(" - *");
        		}
        	} 
        	printf("n"); 
    	}
    }
}      

本以为画图形我比较拿手,没想到还是用了接近两小时,有些细节方面的感觉不好快速考虑到,总体来说思维比较简单,适合我这种小菜鸡,不过accpted的那一刻真的非常兴奋,哈哈,自己花时间写出来的感觉就很nice~~

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>