【PAT乙级】题解-1027 打印沙漏

PAT1027 打印沙漏——解题始末 先说一下做这道题的总体感觉吧。 一开始,哇,这题好难啊,根本无从下手好吗! 仔细琢磨了一会儿,找出了规律,就一步一步开始写。 中间一卡壳,就想,这里不会是需要用我没学过的知识吧?然后埋头接着用我学过的知识想办法…… 最后,写完,把题设所给测试用例通过后,哇,这道题好简单啊。 然后提交,咦,怎么还有两个测试点“格式错误”。 找原因没找到,不会是标准答案给错了吧?_ 然后在网上搜……发现问 阅读详情

PAT :计算机程序设计能力考试:一个高校编程学习赛,内容基础,据说题目描述含糊不清,造成诸多理解错误。

第一观感是:输入输出样例极少,未给学生充分理解题目,提供更多辅助。

PAT 乙级:只涉及基础编程,最难到排序算法。适合基础语法学习阶段的同学。

问题描述

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印

*****
 ***
  *
 ***
*****

所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

输入格式

输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。

输出格式

首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

输入输出样例

输入样例1
19 *

输出样例1

*****
 ***
  *
 ***
*****
2

样例解释:无。

题解 1

思路分析:面向沙漏编程,没想到除了大一,还能再次做字符题。

#include <iostream>
using namespace std;

int main() {

	int n;
	char ch;
	cin >> n >> ch;

	// 奇数 求和 找到最接近 n 的奇数
	int i = 1;
	// while 中,条件左侧,是奇数等差数列求和公式
	while((1 + i) * (1 + i) / 2 - 1 <= n){
		 i += 2;
	}
	i -= 2;
	int ca = n - ((1 + i) * (1 + i) / 2 - 1);

	// 按照 i 来输出 *
	// 按照 j / 2 来输出 空格
	for(int j = i; j >= 1; j -= 2) {
		for(int k = 0; k < (i - j + 1) / 2; k++) {
			cout << ' ';
		}
		for(int k = 0; k < j; k++) {
			cout << ch;
		}
		cout << endl;
	}
	for(int j = 3; j <= i; j += 2) {
		for(int k = 0; k < (i - j + 1) / 2; k++) {
			cout << ' ';
		}
		for(int k = 0; k < j; k++) {
			cout << ch;
		}
		cout << endl;
	}

	cout << ca << endl;
	return 0;
}
PAT乙级【Java题解合集】 学习完本专栏后,leetcode的简单题应该是没啥问题了,可以去做甲级的题目或者leetcode中等以上难度的题目继续修炼,后续博主会整理并更新算法修炼专栏,欢迎您的订阅!👉🏻算法修炼专栏👈🏻。 阅读详情

相关推荐

PAT乙级-题解(Java)

我的题解放在github仓库了(喜欢的话,记得star哈) 下面是汇总导航,如果你只想看其中某个题的话,点击题解直达。 乙级的题目每个题都是一个有趣的故事,引导你去思考解决问题的能力,不是单纯的刷题。然后只涉及数组,循环,判断,字符串等基础编程语言语法的知识,不会设计复杂的算法与数据结构。 一开始可能会有点吃力,正常,但是如果你全部刷完,leetcode上部分简单题对你来说是小case了。 甲级主要是算法与数据结构,乙级刷完了,也可刷甲级, 甲级的题目特别好,测试用例丰富 如果是急需找工作,面试的话刷lee

weixin_45685225的博客 1896

JavaScript PAT乙级题解 1027 打印沙漏

JavaScript PAT乙级题解 1027 打印沙漏

weixin_47925230的博客 282

PAT 乙级 Java 合集

PAT乙级合集

A1sakaTaiga的博客 1482

B1027-PAT乙级JAVA题解 打印沙漏

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

qq_49695680的博客 166

【车辆仿真】从0开始建立dSPACE RT Simulink工程:输出模拟电平

0基础建议先看下前面的博文,补充基础知识。原来的博文太长太复杂,后续我会逐步梳理改进,去除操作层面的内容,仅关注知识层面,提升系列博文的系统性。【工程环境信息】:上位机:惠普台式PC(Windows 11专业版)下位机(实时机):SCALEXIO RTPC板卡:DS2680。

winnizap的博客 2055

Hermes Agent Windows安装教程:本地智能体离线部署实战

本地智能体(Local Agent)是一种运行在用户设备端、无需云端依赖即可响应自然语言指令并自动化执行任务的轻量级AI运行时框架。其核心原理基于配置驱动的任务监听与脚本调用机制,通过服务化驻留实现持续响应能力,技术价值在于保障数据隐私、规避API调用限制、适配内网及老旧系统环境。典型应用场景包括财务报表自动整理、科研仪器数据归档、IT资产变更通知等Windows桌面自动化需求。本文聚焦Hermes Agent这一主流开源实现,围绕Windows平台特有的服务注册、权限模型、杀软拦截、中文路径与YAML编码

weixin_34411563的博客 433

PAT (乙级) 1027 打印沙漏

PAT (乙级) 1027 打印沙漏 题目描述 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印。 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。 给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。 输入格式: 输入在一行给出1...

hjyp的博客 138

自定义css属性实现渐变边框动画

自定义cs属性实现渐变边框动画

lemon的博客 1875

【C/C++】PAT乙级1027打印沙漏 测试点0,1,2错误

【C/C++】PAT乙级1027打印沙漏 测试点0,1,2错误 题目描述 错误详情 #include<iostream> using namespace std; int main(void){ int num; char c; cin>>num>>c; int last; int k=1; if(num==1){ cout<<"*"<<endl; last=0; } else if(num>1){ {

TimeToGoDie的博客 484

基于PCA的故障诊断方法(matlab)

1. PCA原理分析 PCA的原理主要是将原始数据进行降维。其具体工作原理参照:CodingLabs - PCA的数学原理 2. 数据预处理 训练数据集(只有正样本)为维数据,即有n个采样值,每个采样值有m个特征。 2.1 数据归一化 将数据X针对每个特征归一化为均值为0,均方根为1的数据。 其中: 3. PCA降维 3.1 首先求取协方差矩阵 协方差矩阵的公式为: 计算出来的协方差矩阵为特征m*m维矩阵。 3.2 求取特征值和特征向量 求取协方差矩阵R的特征值.

tangxianyu的博客 1万+

【PointNet++】制作点云数据集使用CloudCompare进行标注

使用PointNet++复现成功后,需要训练自己的数据集。于是使用cloudcompare参照ShapeNet的数据集格式去制作,最终保存的txt文件格式为“xyz+rgb+label”,一共7列。 自己按此制作好的数据集已成功训练及推测,于是记录下来让好兄弟好姐妹们少踩坑多吃肉。

纵马踏花向自由 5715

PAT乙级题目索引(题目+解析+AC代码)

题目信息 分值 PAT 乙级 1001 害死人不偿命的(3n+1)猜想 15 PAT 乙级 1002 写出这个数 20 PAT 乙级 1003 我要通过! 20 PAT 乙级 1004 成绩排名 20 PAT 乙级 1005继续(3n+1)猜想 25 PAT 乙级 1006 换个格式输出整数 15 PAT 乙级 1007 素数...

漫浸天空的雨色的备忘录~ 3万+

NVIDIA Isaac Sim 联合 VS Code 开发调试环境配置

在 Visual Studio Code (VS Code) 中打开 Isaac Sim 软件包主文件夹,即可打开该工作区。注意建议在学习教程和示例时使用 Visual Studio Code。另请参见有关 VS Code 工作区的详细信息,请参阅 Visual Studio Code (VS Code) 文档。

2506_90492529的博客 3104

【最新合集】PAT乙级最优题解(题解+解析+代码)

乙级题目+详细题解,整理不易,喜欢的请点个赞哦~ pat乙级题解目录 编号 标题 题解 分类 1001 害死人不偿命的(3n+1)猜想 (15分) C++ 简单模拟 1002 写出这个数 (20分) C++ 常量数组 1003 我要通过! (20分) 待填坑 待填坑 1004 成绩排名 (20分) C++ 结构体 1005 继续(3n+1)猜想 (25分) C++ 打表 1006 换个格式输出整数 (15分) C语言 简单模拟 ...

weixin_43899069的博客 1万+

RK3568平台(USB篇)USB基础知识

现象:把USB设备比如Android手机接到PC答1:是USB控制器,是USB控制器内嵌的root hub.答2. windows里已经有了USB的总线驱动程序,接入USB设备后,是"总线驱动程序"知道你是"android phone"提示你安装的是"设备驱动程序"。USB总线驱动程序负责:识别USB设备, 给USB设备找到对应的驱动程序。答3. PC的USB口内部,D-和D+接有15K的下拉电阻,未接USB设备时为低电平USB设备的USB口内部,D-或D+接有1.5K的上拉电阻;

weixin_49303682的博客 1658

Linux 下安装 openjdk 17【详细步骤】

JDK17,安装教程。

甘蓝的专栏 7507

PAT乙级-【题目+解答】汇总(100%原创/100%完成)

PAT乙级-【题目+解答】汇总 PAT乙级-AC全解汇总 PAT乙级解答集合

卷子的博客 4万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

PAT 乙级 1027(打印沙漏)

PAT 乙级 1027题目要求代码思路 题目要求 代码 #include<iostream> #include<cstring> #include<cmath> using namespace std; int N, n; char c; int main() { scanf("%d %c", &N, &c); n = sqrt...

qq_42865772的博客 135

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

1027. 打印沙漏(20)-PAT乙级真题

1027. 打印沙漏(20)本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印*****************所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。 输入格式:输入在一...

柳婼 の blog 4622

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

PAT 乙级练习 1027 打印沙漏

PAT 乙级练习 题解合集 本题链接 题目 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。 给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用...

Gorgeoustray 327

PAT 乙级 1027  打印沙漏

1027 打印沙漏 (20 point(s)) 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。 给定任意N个符号,不一定能正好组成一个沙漏。要求打...

漫浸天空的雨色的备忘录~ 1081

PAT乙级-1027 打印沙漏 (20分)

题目: 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。 给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。 输入格式: 输入...

卷子的博客 1009

PAT乙级真题1027 || 打印沙漏(详解,C/C++示例,测试点分析)

打印沙漏 题目描述: 本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印 ***** *** * *** ***** 所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符...

whenever5225的博客 2058

【PAT】题解集(乙级)

题解集 - PAT (Basic Level) Practice (中文) - 乙级 一、题集 题目 题解传送门 1001 害死人不偿命的(3n+1)猜想 (15分) 传送门 1002 写出这个数 (20分) 传送门 1003 我要通过! (20分) 传送门 1004 成绩排名 (20分) 传送门 1005 继续(3n+1)猜想 (25分) 传送门 1006 ...

长生的梦呓 1794

JavaScript PAT乙级题解 目录

JavaScript PAT乙级题解 目录

weixin_47925230的博客 1813
上一篇: 【PAT乙级】题解-1093 字符串A+B
下一篇: 【PAT乙级】题解-1036 跟奥巴马一起编程
老坛算粉
博客等级 码龄12年 708粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老坛算粉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值