GDUFE ACM-1029

题目:http://acm.gdufe.edu.cn/Problem/read/id/1029

空心三角形

Time Limit: 2000/1000ms (Java/Others)

Problem Description:

    把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果。在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出来,以便看看效果。

Input:

每行包含一个字符和一个整数n(0<n<41),不同的字符表示不同的花纹,整数n表示等腰三角形的高。显然其底边长为2n-1。如果遇到@字符,则表示所做出来的样板三角形已经够了。

Output:

每个样板三角形之间应空上一行,三角形的中间为空。显然行末没有多余的空格。

Sample Input:

X 2
A 7
@

Sample Output:

 X
XXX
 
      A
     A A
    A   A
   A     A
  A       A
 A         A
AAAAAAAAAAAAA

思路:先输出第一行n-1个空格,然后输出字符,如果不止两行,输出n-2个空格,字符,2*i-1个空格(i从1开始,递增),字符,循环输出,直至最后一行,输出2n-1字符

难度:不算很难,但是我在输入那里写得很乱。。。有更好的方法

代码:
 1 #include<stdio.h>
 2 int main()
 3 {
 4     char a;
 5     int n,i,j,e,d;
 6     scanf("%c",&a);
 7     getchar();
 8     if(a==‘@‘) goto x1;
 9     while(scanf("%d",&n)!=EOF)
10     {
11         getchar();
12         for(i=1;i<n;i++)
13             printf(" ");
14         printf("%c\n",a);
15         e=1;d=n;
16         for(i=n-2;i>0;i--)
17         {
18             for(j=d-2;j>0;j--)
19                 printf(" ");
20             printf("%c",a);
21             d--;
22             for(j=0;j<e*2-1;j++)
23                 printf(" ");
24             printf("%c\n",a);
25             e++;
26         }
27         for(i=0;i<2*n-1;i++)
28             printf("%c",a);
29         printf("\n");
30         scanf("%c",&a);
31         getchar();
32         if(a==‘@‘) break;
33         else printf("\n");
34     }
35     x1:return 0;
36 }

输入方法写得整洁一点的。。

 1 #include<stdio.h>
 2 int main()
 3 {
 4     char a;
 5     int n,i,j,e,d,c;
 6         c=0;
 7     while(scanf("%c",&a)!=EOF&&a!=‘@‘)
 8     {
 9         getchar();
10                 scanf("%d",&n);
11                 getchar():
12                 if(c==1)
13                    printf("\n");
14                  c=1;
15         for(i=1;i<n;i++)
16             printf(" ");
17         printf("%c\n",a);
18         e=1;d=n;
19         for(i=n-2;i>0;i--)
20         {
21             for(j=d-2;j>0;j--)
22                 printf(" ");
23             printf("%c",a);
24             d--;
25             for(j=0;j<e*2-1;j++)
26                 printf(" ");
27             printf("%c\n",a);
28             e++;
29         }
30         for(i=0;i<2*n-1;i++)
31             printf("%c",a);
32         printf("\n");
33     }
34     return 0;
35 }
时间: 2024-08-25 17:50:42

GDUFE ACM-1029的相关文章

[ACM] hdu 1029 Ignatius and the Princess IV (动归或hash)

笨蛋的难题(一) 时间限制:1000 ms  |  内存限制:65535 KB 难度:1 描述        笨蛋之所以称为笨蛋,是因为他有点路痴.他一旦不高兴,就必然一个人漫无目的的出去走走.今天下雨了,他又不高兴了,怎么办?那就出去走呗,这不又丢了,这次幸好记下出来时的方向,并且在一张纸上密密麻麻的记下了他拐的弯(他很聪明吧,拐的弯都是90度的弯),0代表左拐,1代表右拐,那么多0.1,他实在看不下去了,正好遇见善良加聪明的你,你能告诉他,他现在面向哪吗? 输入 多组测试数据 第一行 输入:

http://acm.gdufe.edu.cn/Problem/read/id/1007

递推题目系列之一涂色问题 Time Limit: 2000/1000ms (Java/Others) Problem Description 有排成一行的n个方格,用红(Red).粉(Pink).绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法. Input: 输入数据包含多个测试实例,每个测试实例占一行,由一个整数N组成,(0<n<=50). Output: 对于每个测试实例,请输出全部的满足要求的涂法,每个实例的输出占一行.

杭电ACM分类

杭电ACM分类: 1001 整数求和 水题1002 C语言实验题——两个数比较 水题1003 1.2.3.4.5... 简单题1004 渊子赛马 排序+贪心的方法归并1005 Hero In Maze 广度搜索1006 Redraiment猜想 数论:容斥定理1007 童年生活二三事 递推题1008 University 简单hash1009 目标柏林 简单模拟题1010 Rails 模拟题(堆栈)1011 Box of Bricks 简单题1012 IMMEDIATE DECODABILITY

杭电 1029 Ignatius and the Princess IV

http://acm.hdu.edu.cn/showproblem.php?pid=1029 Ignatius and the Princess IV Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32767 K (Java/Others) Total Submission(s): 16754    Accepted Submission(s): 6730 Problem Description "OK, you ar

GDUFE ACM-1356

题目:http://acm.gdufe.edu.cn/Problem/read/id/1356 Problem B. Relative atomic mass Time Limit: 2000/1000ms (Java/Others) Problem Description: Relative atomic mass is a dimensionless physical quantity, the ratio of the average mass of atoms of an element

GDUFE ACM-1087

题目:http://acm.gdufe.edu.cn/Problem/read/id/1087 辉辉的一天 Time Limit: 2000/1000ms (Java/Others) Problem Description: 辉辉.姗姗和佳佳是好朋友,他们一起参加了在湖南长沙长郡中学举办的第二十一届全国青少年信息学奥林匹克竞赛(NOI2004).他们很早就来到了长沙,可是报名还没有开始.怎么办呢?他们决定分头出去玩一天,晚上回到宿舍以后给大家说说自己这一天做了什么有意义的事情. 你一定想不到辉辉

GDUFE ACM-1050

题目:http://acm.gdufe.edu.cn/Problem/read/id/1050 a/b + c/d Time Limit: 2000/1000ms (Java/Others) Problem Description: 给你2个分数,求他们的和,并要求和为最简形式. Input: 输入首先包含一个正整数T(T<=1000),表示有T组测试数据,然后是T行数据,每行包含四个正整数a,b,c,d(0<a,b,c,d<1000),表示两个分数a/b 和 c/d. Output:

GDUFE ACM-1028 回文串

题目:http://acm.gdufe.edu.cn/Problem/read/id/1028 Problem Description: “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串.请写一个程序判断读入的字符串是否是“回文”. Input: 输入包含多个测试实例,输入数据的第一行是一个正整数n,表示测试实例的个数,后面紧跟着是n个字符串. Output: 如果一个字符串是回文串,则输出"yes",否则输出"no". S

GDUFE ACM-1019 Repeating Characters

题目:http://acm.gdufe.edu.cn/Problem/read/id/1019 Problem Description: For this problem, you will write a program that takes a string of characters, S, and creates a new string of characters, T, with each character repaeated R times. That is, R copies