7-3 打印沙漏

2023-12-04 19:32
文章标签 打印 沙漏

本文主要是介绍7-3 打印沙漏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

暑假字符串专题HBU程序设计训练营总结

?点这里

7-3 打印沙漏

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

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

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

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

输入格式:

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

输出格式:

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

输入样例:

19 *

输出样例:

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

 

这道题是我大一上半年pat做过的第一道题,当时写了✍一晚上也没有写上来呢。。。现在再看这道题,就轻松了很多。

我做题的时候还是写的有点乱

1.先画出图,推出算行数的公式。

2.在按行数打印三角形,正三角形和倒三角型

3.最后输出剩余的个数。

#include<iostream>
using namespace std;
int main(){int n;string s;cin>>n>>s;//计算行数 int hang=1;n=n-1;for(hang;n>=0;hang++){n=n-(((hang+1)*2)-1)*2;//	cout<<n<<endl;} n+=(hang*2-1)*2;hang--;for(int i=0;i<hang;i++){for(int k=0;k<i;k++){cout<<" ";}for(int k=0;k<(hang-i)*2-1;k++){cout<<s;}cout<<endl;}for(int i=1;i<hang;i++){for(int k=i+1;k<hang;k++){cout<<" ";}for(int k=0;k<(i*2+1);k++){cout<<s;}cout<<endl;}cout<<n;return 0;
}

 

 随便在百度找的思路清晰的,我能坐上来就是考的时候太乱了。

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int k=0,i,j,n;
char c;
cin>>n>>c;
while(1)
{
if((2*pow(k+1,2)-1)>n)
break;
else k++;
}
for(i=k-1;i>0;i--)
{
for(j=1;j<=(k-1-i);j++)
cout<<" ";
for(j=1;j<=(2*i+1);j++)
cout<<c;
cout<<endl;
}
for(i=0;i<=k-1;i++)
{
for(j=1;j<=(k-1-i);j++)
cout<<" ";
for(j=1;j<=(2*i+1);j++)
cout<<c;
cout<<endl;
}
//cout<<k-1<<endl;
cout<<(n-2*pow(k,2)+1)<<endl;
return 0;
}

 

这篇关于7-3 打印沙漏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/454650

相关文章

多数据源的事务处理总是打印很多无用的log日志

之前做了一个项目,需要用到多数据源以及事务处理,在使用事务处理,服务器总是打印很多关于事务处理的log日志(com.atomikos.logging.Slf4jLogger),但是我们根本不会用到这些log日志,反而使得查询一些有用的log日志变得困难。那要如何屏蔽这些log日志呢? 之前的项目是提高项目打印log日志的级别,后来觉得这样治标不治本。 现在有一个更好的方法: 我使用的是log

fastreport打印trichedit分页问题的解决

用fastreport来打印richedit里面的内容。刚开始放一个frxrichview组件到报表上,然后在 var str: TMemoryStream; begin    begin      str:= TMemoryStream.Create;      CurrRichRecord.richedit.Lines.SaveToStream(str);      str.Posit

模具要不要建设3D打印中心

随着3D打印技术的日益成熟与广泛应用,模具企业迎来了自建3D打印中心的热潮。这一举措不仅为企业带来了前所未有的发展机遇,同时也伴随着一系列需要克服的挑战,如何看待企业引进增材制造,小编为您全面分析。 机遇篇: 加速产品创新:3D打印技术如同一把钥匙,为模具企业解锁了快速迭代产品设计的可能。企业能够迅速将创意转化为实体模型,缩短产品从设计到市场的周期,抢占市场先机。 强化定制化服务:面

Java项目中,配置打印 JDBC 日志的几种方法

在 IDEA 项目中,如果你想打印 JDBC 日志,可以通过配置日志框架(如 Logback 或 Log4j)来实现。Spring Boot 使用的默认日志框架是 Logback,你可以通过在 application.yml 文件中配置日志级别来打印 JDBC 日志。 方法 1: 使用 application.yml 配置 JDBC 日志 logging:level:# 显示 SQL 语句co

一个C++程序运行,从点击运行到控制台打印文本,电脑硬件的资源是如何调动的

当点击运行一个 C++ 程序并看到控制台输出文本时,计算机硬件和操作系统之间协同工作,完成了多个步骤。这些步骤涉及 CPU、内存、存储设备、操作系统和输入输出设备的共同作用。下面是一个详细的过程描述: 1. 程序加载 启动:当你点击运行一个可执行文件时,操作系统(通常是 Windows、Linux 或 macOS)的文件系统管理器识别请求,并启动加载程序。读取可执行文件:加载程序将可执行文件从

跨平台打印模板转化pdf源码--SAAS本地化及未来之窗行业应用跨平台架构

一、跨平台打印转pdf渲染 pdf渲染模式可以支持国产化系统,和手机系统,安卓,苹果系统,qq浏览器,火狐,谷歌刘安祺 二、代码 /*///cyberwin_offline_database_printtemp.js未来之窗打印模板解析技术 2024-09LeftMargin="0" TopMargin="0" RightMargin="0" BottomMargin="0"ReportP

日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查

一、异常堆栈无traceId 排查定位问题异常痛苦        在日常项目开发中,我们会自定义一个traceId方便,链路追踪。在log4j2.xml 我们可能是这样去配置日志打印格式。 <Console name="CONSOLE" target="SYSTEM_OUT"><PatternLayoutpattern="${APP_NAME} %-d{yyyy-MM-dd HH:mm:ss}

hiprint打印/jsPDF使用/html2canvas

最初我知道hiprint.print是可以打印双模板的,于是查看hiprint.print的源码发现底层实现是this.getHtml(t).hiwprint,于是断点查看getHtm的实现,得知它是遍历我们对print传参的list,利用list中模板对象的getHtml()方法得到模板的dom对象,同时利用append将两个模板dom拼接到一个模板对象里然后返回。至此我们可以拿到一个合成的模板

题目:求100以内的素数,全部打印出来。

题目:求100以内的素数,全部打印出来。 public class ZhaoSuShu {public static void isPrime1(){int i,j,count = 0;//System.out.println("2");for(i = 1; i <= 100; i++){for(j = 2; j <= i; j++){if(i % j == 0){break;}}if(j ==

log4j 打印sql,按日期生成文件,生成文件位置

1、 log4j 打印sql 要把日志等级调成debug才会显示sql log4j.rootLogger=info,Console      Console   log4j.appender.Console=org.apache.log4j.ConsoleAppender   log4j.appender.Console.layout=org.apache.log4j.Patte