PAT Basic Level 1027

AC代码

 1 #include <stdio.h>
 2 int main ()
 3 {
 4     int amount;
 5     char pattern;
 6     scanf("%d %c",&amount,&pattern);
 7     int endNum = 1;
 8     int lineNum = 0;
 9     
10     while(((1 + (2 *lineNum - 1)) * lineNum) / 2 * 2 - 1 < amount)
11     {
12         lineNum++;
13     }
14     if(((1 + (2 *lineNum - 1)) * lineNum) / 2 * 2 - 1 != amount)
15     lineNum--;
16     endNum = lineNum * 2 -1;
17     int remain = 0;
18     remain = amount - ((1 + (lineNum * 2 -1)) * lineNum / 2 * 2 -1);
19     int i;
20     int j;
21     int p;  //控制空格 
22     for(j = 0 ; j < lineNum ; j++)
23     { 
24         for(p = j;p > 0 ;p--)
25         {
26             printf(" ");
27         }
28         for(i = 0;i < (lineNum * 2 - 1) - (j * 2);i++)
29         {
30             printf("%c",pattern);
31         }
32         printf("\n");    
33     }
34     for(j = 0;j < lineNum - 1;j++)
35     {
36         for(p = 0;p < lineNum - 2 - j;p++)
37         {
38             printf(" ");
39         }
40         for(i = 0;i < 3 + j * 2;i++)
41         {
42             printf("%c",pattern);
43         }
44         printf("\n"); 
45     } 
46     printf("%d",remain);
47     
48     return 0 ;
49  } 

 

posted @ 2016-10-19 11:16  Ponytai1  阅读(154)  评论(0编辑  收藏  举报