首页 > 其他分享 >pat 乙级 1027 打印沙漏

pat 乙级 1027 打印沙漏

时间:2023-03-18 20:48:39浏览次数:40  
标签:1027 ch pat 沙漏 rs int ++ num printf

ac 但写得就像坨答辩 过两天我自己都忘了这些变量用来干嘛的了

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <string.h>
 4 #include <math.h>
 5 
 6 int main()
 7 {
 8     int num[1000];
 9     int i = 0;
10     for (int i = 0, j = 1, k = 1; i < 1000; i++)
11     {
12         num[i] = j;
13 
14         j = j + (k * 2 + 1) * 2;
15         k++;
16     } // 此数组存储着能组成沙漏的符号个数
17     int p;
18     char ch;
19     scanf("%d %c", &p, &ch);
20     i = 0;
21     if(p<7){
22         printf("%c\n",ch);
23         printf("%d",p-1);
24         return 0;
25     }
26     while (p >= num[i])
27     {
28         i++;
29     } // 按num[i-1]得到沙漏符号数
30     int q = i - 1;
31     int m = q * 2 + 1;
32     int r = 0;
33     int rs = 0;
34     for (int t = 0; t < (num[i - 1] - 1) / 2; t++)
35     {
36         printf("%c", ch);
37 
38         if (t + 1 == m)
39         {
40             printf("\n");
41             r++;
42             rs = r;
43             if (r <= i - 2)
44             {
45                 for (; rs > 0; rs--)
46                 {
47                     printf(" ");
48                 }
49             }
50 
51             q--;
52             m = m + q * 2 + 1;
53         }
54     }
55     q = i - 2;
56     for (int t = 0; t < i - 1; t++)
57     {
58         printf(" ");
59     }
60     printf("%c\n", ch);
61     m = 3;
62     int ms = 3;
63     r = 0;
64     rs = 0;
65     int j=i-1;
66     for (int t = 0; t < (num[i - 1] - 1) / 2; t++)
67     {
68         if (rs == r)
69         {
70 
71             for (int l = j - 1; l > 0; l--)
72             {
73                 printf(" ");
74             }
75             j--;
76             rs++;
77         }
78 
79         printf("%c", ch);
80         if (t + 1 == m && m != (num[i - 1] - 1) / 2)
81         {
82             rs = r;
83             printf("\n");
84             m = m + ms * 2 - 1;
85             ms++;
86         }
87     }
88     printf("\n%d", p - num[i - 1]);
89     return 0;
90 }

 

标签:1027,ch,pat,沙漏,rs,int,++,num,printf
From: https://www.cnblogs.com/Npc-Hb/p/17231683.html

相关文章

  • PATH
    Path环境变量的作用它提供了windows命令行中指令的可执行文件(比如:.exe文件)路径,让我们在命令行中输入命令时,能够找到对应的可执行文件执行简单说:让命令在命令行中......
  • xpath定位方法
    一.常用定位方法1.根据文本值定位元素查找文本值为DNS的div元素text1=html.xpath("//div[text()='DNS']")text2=html.xpath("//div[text()='DNS']/text()")#获......
  • PAT Basic 1033. 旧键盘打字
    PATBasic1033.旧键盘打字1.题目描述:旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及坏掉的那些键,打出的结果文字......
  • PAT Basic 1031. 查验身份证
    PATBasic1031.查验身份证1.题目描述:一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配......
  • PAT 甲级 1012 The Best Rank(25)
    ToevaluatetheperformanceofourfirstyearCSmajoredstudents,weconsidertheirgradesofthreecoursesonly:C-CProgrammingLanguage,M-Mathematics......
  • PAT Basic 1030. 完美数列
    PATBasic1030.完美数列1.题目描述:给定一个正整数数列,和正整数\(p\),设这个数列中的最大值是\(M\),最小值是\(m\),如果\(M≤mp\),则称这个数列是完美数列。现在给定......
  • PAT Basic 1029. 旧键盘
    PATBasic1029.旧键盘1.题目描述:旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏......
  • vuex TypeError: Cannot read properties of undefined (reading ‘dispatch‘)
      1、入口文件main.js  2、或者版本不匹配 vue2安装3版本的vuex,默认安装的4版本给vue3用//卸载原来安装的vuexnpmuninstallvuex//安装3.6.2版本的vuexnpm......
  • 使用patch-package定制node_modules 中的依赖包
    背景:首先,需求是这样,Vue项目中使用的是iview第三方UI库,要修改组件DatePicker中默认选中的当日的日期(如下图),实现无论在哪个时区,均显示中国的日期   由于,iview提供的a......
  • singleton pattern
    C1.overviewp1.conceptproblemsPeoplecanusereflectmechanismtocreateotherinstancetoviolatesingleton.ThesafetyofthreadInstructionreordering......