PAT-B1027

Posted wookizest

tags:

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

有的时候没有什么毅力,也很浮躁,写题也写不出所以然

记录一些自己想出来的

 1 #include <math.h>
 2 #include <stdio.h>
 3 int main()
 4 {
 5     int n;
 6     char c;
 7     scanf("%d %c", &n, &c);
 8     int bottom = (int)sqrt(2.0 * n + 1.0) - 1;
 9     if (bottom % 2 == 0)
10         bottom--;
11     int used = (1 + bottom) * (1 + bottom) / 2 - 1; //多算一个
12     int last = n - used;
13     for (int i = bottom; i > 1; i -= 2)
14     {
15         /* code */
16         for (int j = 0; j < (bottom - i) / 2; j++)
17         {
18             /* code */
19             printf(" ");
20         }
21         for (int k = 0; k < i; k++)
22         {
23             /* code */
24             printf("%c", c);
25         }
26         putchar(
);
27     }
28     for (int i = 1; i <= bottom; i += 2)
29     {
30         /* code */
31         for (int j = 0; j < (bottom - i) / 2; j++)
32         {
33             /* code */
34             printf(" ");
35         }
36         for (int k = 0; k < i; k++)
37         {
38             /* code */
39             printf("%c", c);
40         }
41         putchar(
);
42     }
43     printf("%d", last);
44     
45     return 0;
46 }

有一个测试点无法通过

主要是数学知识

以上是关于PAT-B1027的主要内容,如果未能解决你的问题,请参考以下文章

PAT-B 刷题

oj--pat-b1009

PAT-B-1003

PAT-B-1040

PAT-B1026 程序运行时间

PAT-B-1020