首页 > 其他分享 >L1-002 打印沙漏

L1-002 打印沙漏

时间:2024-04-02 13:33:20浏览次数:18  
标签:输出 沙漏 符号 打印 002 给定 L1 格式

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

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

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

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

输入格式:

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

输出格式:

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

输入样例:

19 *

输出样例:

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

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

#include<iostream>
using namespace std;
int main()
{
	int i = 1, j = 1, k = 1, sum, N;
	char n;
	cin>>N>>n;
	for (i = 1; i <= N; i += j * 2)
	{
		j += 2;
		k += 2;
	}
	i -= j * 2;
	k -= 2;
	sum = N - i;
	for (i = 0; i < k / 2 + 1; i++)
	{
		for (j = 0; j < i; j++)
		{
			cout<<" ";
		}
		for (j = 0; j < k - i * 2; j++)
		{
			cout<<n;
		}
		cout<<endl;
	}
	for (i = 1; i <= k / 2; i++)
	{
		for (j = 1; j <= k / 2 - i; j++)
		{
			cout<<" ";
		}
		for (j = 1; j <= i * 2 + 1; j++)
		{
			cout<<n;
		}
		cout<<endl;
	}
cout<<sum;
	return 0;
}

运行结果:

思想:

首先依据题意,判断循环条件,利用循环输出特定图形。可注意此题目中的对称变换。

标签:输出,沙漏,符号,打印,002,给定,L1,格式
From: https://blog.csdn.net/u014114223/article/details/137249378

相关文章

  • L1-048 矩阵A乘以B
    给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra​行、Ca​列,B有Rb​行、Cb​列,则只有Ca​与Rb​相等时,两个矩阵才能相乘。输入格式:输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给......
  • L1-096 谁管谁叫爹
    int类型最多表示的21亿,这个题int就可以。#include<bits/stdc++.h>usingnamespacestd;intgetSum(inta){ intres=0; while(a){ res+=a%10; a/=10; } returnres;}intmain(){ intn; cin>>n; while(n--){ inta,b; cin>>a>>b; ints1......
  • L1-095 分寝室
    暴力枚举。#include<bits/stdc++.h>usingnamespacestd;constintinf=0x3f3f3f3f;intres1,res2;intmain(){ inta,b,c;//女生男生寝室数 cin>>a>>b>>c; intminsub=inf; for(inti=2;i<a;i++){//i表示女生几人间 if(a%i==0&&c-a......
  • L1-094 剪切粘贴
    这个题目是stl的使用和字符串拼接。java里头substring是从首部到尾部的位置,但是C++里面substr是首部位置,和要截取的长度。我算这种经常出错,每次都搞得很晕。#include<bits/stdc++.h>usingnamespacestd;stringcs;intmain(){ cin>>cs; intcnt; cin>>cnt; while......
  • 深入学习MySQL1——体系结构、常见引擎、索引
    MySQL体系结构连接层:提供一些mysql的数据连接对象、用户校验、权限认证等服务服务层:在本层实现了一些核心功能,如SQL接口,缓存查询(8.0之后的版本已取消该功能)、SQL分析和优化,部分内置函数的执行。所有的跨存储引擎的功能都在这一层实现,如:过程、函数等。在该层,服务器会解析查询并......
  • Poi2002滑雪者命名
    网络流#有源汇上下界费用流#最小点覆盖最小点覆盖问题这里可以直接有源汇上下界费用流//Author:xiaruize#ifndefONLINE_JUDGE#definedebug(x)cerr<<"OnLine:"<<__LINE__<<#x<<"="<<x<<endlboolstart_of_memory_use;#else#defi......
  • L1 和 L2 正则的区别,从梯度的角度来解释
    ......
  • 【洛谷P1036】 [NOIP2002 普及组] 选数
    一、题目:二、解题思路:本文章采用的解决方法是递归与DFS(深度优先搜索)。以下图是思路图:1.首先-确定位置题目说4个数字取三个数,所以考虑的只有三个位置和这三个位置分别放什么数值。从第一个位置开始放数。2.其次-开始放数分为4种可能,第一位置可以先放3,那么第二个位置......
  • L1-088 静静的推荐
    首先天梯赛175是基操,在这个基础上,pta达到企业要求相当于就是特招了,也就是他不会占用你这个批次的名额。将这些特招排除之后,假设175这个线还有x个人,需要s人,那么在就会要s个人(x>s,x<s那就是这个线的人全要了)。写法一:#include<bits/stdc++.h>usingnamespacestd;intscore[......
  • L1-087 机工士姆斯塔迪奥
    注:某些行or列可能重复删除,所以需要记录那些已经被删除过了。#include<bits/stdc++.h>usingnamespacestd;intmain(){ intn,m,q; cin>>n>>m>>q;//行和列数 intssize=n*m; set<int>rows,cols; while(q--){ intop,t; cin>>op>......