xtu oj 1397 Patchouli的金字塔

Posted 风无涯ᝰ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xtu oj 1397 Patchouli的金字塔相关的知识,希望对你有一定的参考价值。

Patchouli的金字塔

Submit Code ] [ Top 20 Runs ] [ Runs Status ]
Acceteped : 15Submit : 27
Time Limit : 1000 MSMemory 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~~

以上是关于xtu oj 1397 Patchouli的金字塔的主要内容,如果未能解决你的问题,请参考以下文章

九度oj 题目1397:查找数段

xtu 1035 与xtu 1036 两道出栈入栈题目,蛮有趣的

xtu怎么设置永久有效

使用XTU降低CPU功耗,自动执行不失效

具有多个x轴的R plotly框架

XTU 1236 Fraction