PAT B1027 打印沙漏(20)
思路:
- 使用数组保存每一行沙漏的最大符号数
- 输入一个正整数和一个符号
- 遍历数组,找到大于正整数的数组下标 j。
- 三角形底边的字符数为 (j - 1) * 2 - 1
- 打印沙漏
- 打印剩余字符:x - n[j - 1]
AC代码
#include <cstdio>
const int max_n = 200;
int n[max_n] = {0};
int i = 3;
void init() {
n[1] = 1;
n[2] = 7;
int sum = 0;
while(n[i-1] < 1000) {
int j = (i * 2 - 1) * 2;
n[i] = n[i - 1] + j;
i++;
}
}
int main() {
init();
int x;
char y;
#ifdef ONLINE_JUDGE
#else
freopen("1.txt", "r", stdin);
#endif // ONLINE_JUDGE
scanf("%d %c", &x, &y); //x:正整数 y:符号
// int i = 1;
// while(n[i] != 0) {
// printf("%d:---%d---\n", i,n[i]);
// ++i;
// }
// printf("*********%d*************\n", i);
int j = 1;
while(n[j] <= x) {
j++;
}
int bottom = (j - 1)*2-1; //三角形底边的字符数
//int space = (bottom+1)*(bottom-1)/2-1;
// printf("%d\n", small);
//打印沙漏
//倒三角
// printf("bottom: %d\n", bottom);
for(int i = bottom; i >= 1; i-=2) {
for(int j = 0; j < (bottom - i) / 2; j++) {
printf(" ");
}
for(int j = 0; j < i; j++) {
printf("%c", y);
}
printf("\n");
}
//正三角
for(int i = 3; i <= bottom; i+=2) {
for(int j = 0; j < (bottom - i) / 2 ; j++) {
printf(" ");
}
for(int j = 0; j < i; j++) {
printf("%c", y);
}
printf("\n");
}
printf("%d\n", x - n[j-1]);
return 0;
}
PAT B1027 打印沙漏(20)的更多相关文章
- PAT 1027 打印沙漏(20)(思路)
1027 打印沙漏(20)(20 分) 本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***** *** * *** ***** 所谓& ...
- PAT B1027 打印沙漏 (20 分)
本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号:各行符号中心对齐:相邻两 ...
- PAT 1027. 打印沙漏(20)
本题要求你写个程序把给定的符号打印成沙漏的形状.例如给定17个"*",要求按下列格式打印 ***** *** * *** ***** 所谓"沙漏形状",是指每行 ...
- PAT (Basic Level) Practise (中文)-1027. 打印沙漏(20)
PAT (Basic Level) Practise (中文)-1027. 打印沙漏(20) http://www.patest.cn/contests/pat-b-practise/1027 本题 ...
- PAT乙级 1027. 打印沙漏(20)
1027. 打印沙漏(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打印成 ...
- PAT (Basic Level) Practise (中文)1027. 打印沙漏(20)
1027. 打印沙漏(20) 时间限制 200 ms 内存限制 32000 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打印成 ...
- PAT 乙级 1027 打印沙漏(20) C++版
1027. 打印沙漏(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打印成 ...
- PAT-乙级-1027. 打印沙漏(20)
1027. 打印沙漏(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打印成 ...
- pat00-自测1. 打印沙漏(20)
00-自测1. 打印沙漏(20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题要求你写个程序把给定的符号打 ...
随机推荐
- Dean and Schedule (URAL 2026)
Problem A new academic year approaches, and the dean must make a schedule of classes for first-year ...
- Leetcode题目141.环形链表(简单)
题目描述: 给定一个链表,判断链表中是否有环. 为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始). 如果 pos 是 -1,则在该链表中没有环. 示例 ...
- 2018-2019-2 20165330《网络对抗技术》Exp9 Web安全基础
目录 基础问题 实验目的 实验内容 实验步骤 实验总结与体会 实验目的 本实践的目标理解常用网络攻击技术的基本原理. 返回目录 实验内容 WebGoat准备工作 SQL注入攻击 命令注入(Comman ...
- Java-CAS 与原子类
CAS(Compare and Swap),即比较并替换,实现并发算法时常用到的一种技术. CAS 的思想很简单:三个参数,一个当前内存值 V.旧的预期值 A.即将更新的值 B,当且仅当预期值 A 和 ...
- SpringCloud(1)----基于RestTemplate微服务项目
在写SpringCloud搭建微服务之前,我想先搭建一个不通过springcloud只通过SpringBoot和Mybatis进行模块之间额通讯.然后在此基础上再添加SpringCloud框架. 下面 ...
- Java堆大小[z]
JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制:系统的可用虚拟内存限制:系统的可用物理内存限制. 32位系统下,一般限制在1.5G~2G:64为操作系统对内存 ...
- numpy基本方法总结
NumPy基本方法 一.数组方法 创建数组:arange()创建一维数组:array()创建一维或多维数组,其参数是类似于数组的对象,如列表等 读取数组元素:如a[0],a[0,0] 数组变形:如b= ...
- unix进程通信方式总结(上)(转)
本文将<unix环境高级编程>一书中所涉及的几种重要的进程间通信方式(Inter-Process Communication)进行简单总结,总的来说,进程间通信有以下几种: ...
- jquery简单入门1
前端 html:展示 form: 属性: action和method 子标签: input(10种) text password radio checkbox file submit button r ...
- Jmeter性能测试工具的使用(Web性能测试)
Jmeter性能测试工具的使用(Web性能测试) 1.下载 http://pan.baidu.com/s/1o7p18Ye 该软件不用安装,直接解压打开即可使用. 2.使用 这里就在win下进行,图形 ...