首页 > 其他分享 >1073 - 沙漏

1073 - 沙漏

时间:2024-09-24 19:49:24浏览次数:3  
标签:个星 cout 沙漏 int 打印 1073 空格

题目描述

赵老师最近在编一个操作系统,正好编到鼠标的繁忙状态,需要一个沙漏符号,正好大家都在学 C++ ,你的任务就是帮赵老师编一个程序打印一个沙漏符号。

输入

一个整数 n ,符号的行数(保证 n 是大于 1 的奇数)。

输出

沙漏符号,使用 * 打印。

样例

输入
5

输出

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

解题思路

1)先明确输入输出有几个,这里输入只有1个,是int类型,每行输出是由空格和星号组成
2)分析沙漏图案,发现是一个对称图形,打印这种图案我们需要先分为上下两部分,这里可以把第3行划分到上面部分也可以划分到下面部分
3)理清楚上半部分的行数:n/2+1,下半部分的行数:n/2
4)找到这个图案的规律,规律如下:
在这里插入图片描述

代码实现

#include <bits/stdc++.h>
using namespace std;

/*
	思路:
		第1行:0个空格  5个星 
		第2行:1个空格  3个星 
		第3行:2个空格  1个星 
	 
*/
int main(){
	int n;
	cin>>n;
	//打印前一半图案 
	for(int i = 1;i<=n/2+1;i++){
		//打印空格 
		for(int j = 1;j <= i-1;j++){
			cout<<" "; 
		}
		//打印星号
		for(int j = 1;j <= ((n/2+1)-i)*2+1;j++){
			cout<<"*";
		} 
		cout<<endl; 
	} 
	
	//打印后一半图案
	for(int i = 1;i <= n/2;i++){
		for(int j = 1;j <= n/2-i;j++){
			cout<<" ";
		}
		for(int j = 1;j <= 2*i+1;j++){
			cout<<"*";
		}
		cout<<endl;
	} 
	return 0;
}

标签:个星,cout,沙漏,int,打印,1073,空格
From: https://blog.csdn.net/qq_41611106/article/details/142496984

相关文章

  • 进程已结束,退出代码为 -1073740791 (0xC0000409)。QThread: Destroyed while thread i
            在使用pycharm写代码发现代码运行不了,进程已结束,退出代码为-1073740791(0xC0000409),但是又不提示具体错在哪。为了得到更加清晰的错误原因,可如下操作:        ①点击debug旁边的三个小点moreactions,点击编辑。        ②勾选在控制台中......
  • P1073 [NOIP2009 提高组] 最优贸易
    大佬题解感觉分层图的做法太nb了吧,每次向下连边更新权值,我确实没什么补充的了,还是看大佬的吧。#include<bits/stdc++.h>usingnamespacestd;#definelllonglongconstintN=1e7+10;intn,m;intval[N];intcnt;inthead[N];structss{ intto,w,next;}a[N];voi......
  • L1-002 打印沙漏
    本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印*****************所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。给定任意N个......
  • 【目标检测数据集】卡车数据集1073张VOC+YOLO格式
    数据集格式:PascalVOC格式+YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件)图片数量(jpg文件个数):1073标注数量(xml文件个数):1073标注数量(txt文件个数):1073标注类别数:1标注类别名称:["truck"]每个类别标注的框数:truck框......
  • 10735 最简分数
    描述输入正整数a和b,分别作为分数的分子和分母,即分数ba​,输出分数ba​的最简形式,例如分数84​输出的最简形式为1/2,分数48​输出的最简形式为2,分数69​输出的最简形式为3/2。输入描述第一行包含两个整数a和b。(1≤a,b≤1000)输出描述分数ba​的最简形式。样例输入1 48......
  • L1-002 打印沙漏
    重点找递推公式,推导层数//8'39"#include<iostream>#include<cmath>usingnamespacestd;intmain(){intn;cin>>n;charc;cin>>c;intcur=1;for(inti=0;i<=n;++i)if(2*(i*i)......
  • 从流读取时,PyAudio Stream 导致 Windows 堆损坏(-1073740940 (0xC0000374))
    我在尝试读取PyAudio的Stream时遇到了问题。它因退出代码而崩溃-1073740940这是一个Windows堆损坏错误0xC0000374它发生在我从PyAudio流读取的行中,如下所示:stream.read(chunk_size)我也看到它崩溃了-1073741819ACCESS_VIOLATION_......
  • [lnsyoj2208/luoguP10737]Reverse Game
    来源原题链接2024.7.25校内测验T1题意给定01串,每次可将其中的10、100、110、1010翻转,无法操作的一方输,求哪方必胜赛时DFS0ptssol可以发现,10减少\(1\)个逆序对,其余都可减少\(2\)个逆序对;同时,当串内存在逆序对时,一定可以翻转(因为一定存在10),因此,我们可以计算串内......
  • 题解:P10733 [NOISG2019 Prelim] Lost Array
    题解:P10733[NOISG2019Prelim]LostArray思路对于任意\(\min(X_{A_{i}},X_{B_{i}})=C_{i}\)。只要让\(X_{A_{i}}\)与\(C_{i}\)取\(\max\)值。\(X_{B_{i}}\)与\(C_{i}\)取\(\max\)值。这样可以让\(\min(X_{A_{i}},X_{B_{i}})\)绝对是\(C_{i}\)。对于为赋值......
  • 题解:P10732 [NOISG2019 Prelim] Palindromic FizzBuzz
    题解:P10732[NOISG2019Prelim]PalindromicFizzBuzz题意题意十分明了,给予你一个区间,判断区间中每一个数是否是回文数。思路思路比较简单,首先将每一个数按每一位放入一个数组中,顺序无论由前到后和由后到前都可以。接下来将数组折半循环,判断前后是否一样。一样的话是回文数,......