首页 > 其他分享 >1071 - 字符图形7-星号菱形

1071 - 字符图形7-星号菱形

时间:2024-09-24 16:52:28浏览次数:10  
标签:空格 个星 cout 星号 1071 图案 int 菱形 图形

题目描述

输入一个整数 n ,请打印出 n∗2+1 行的字符图形。

输入

一个整数(0<n<10)。

输出

一个字符图形,如输入 2 ,则产生 5 行的菱形(为方便找规律,这里将空格用 □ 替代,实际输出,请输出空格)。
□□×
□×××
×××××
□×××
□□×

样例

输入
2
输出
  *
 ***
*****
 ***
  *

解题思路

1)先明确输入输出有几个,这里输入只有1个,是int类型,每行输出是由空格和星号组成
2)这个题的图案和我们之前做的图案题目有些不一样,需要打印的是2*n+1行图案
3)观察图案,可以把图案分成上下两部分进行打印,这里可以把第3行和前面2行看作一个图案也可以把第3行和最后2行看作一个图案
4)我这里的思路是把第3行和上面部分作为一个图案,先找上部分图案的规律,这里上半部分的行数就是n+1行,再找下部分图案的规律,下半部分的行数就是n行,找到的规律如下:
在这里插入图片描述

代码实现

#include <iostream>
using namespace std;

int  main(){
	
	/*
	 思路:上下对称图形,我们采用先打印一半图形,然后将一半图形颠倒得到另外一半的方法实现
	 注意:首先到得到一半的图形的实际行数 
	 规律:
	 		i=1	2个空格	1个星
			i=2 1个空格 3个星
			i=3 0个空格 5个星
			第i行 n+1-i个空格 2*i-1个星 
	*/
	int n,i,j;
	cin>>n;
	//一半图形的行数为n+1行 
	for(i=1;i<=n+1;i++){
		
		for(j =1;j<=n+1-i;j++){
			cout<<" ";
		}
		for(j=1;j<=2*i-1;j++){
			cout<<"*";
		}
		cout<<endl;
	}
	for(i=1;i<=n;i++){
		
		for(j = 1;j<=i;j++){
			cout<<" ";
		}
		for(j=1;j<=(n-i)*2+1;j++){
			cout<<"*";
		}
		cout<<endl;
	}
	return 0;
}

标签:空格,个星,cout,星号,1071,图案,int,菱形,图形
From: https://blog.csdn.net/qq_41611106/article/details/142494028

相关文章

  • 3170. 删除星号以后字典序最小的字符串
    题目链接3170.删除星号以后字典序最小的字符串思路堆栈&位运算题解链接三种写法:26个栈+位运算优化(Python/Java/C++/Go)关键点1.用堆栈跟踪各个字母出现的位置2.用位运算跟踪当前最小字母(lowbit技巧)时间复杂度朴素做法:\(O(n\vert\Sigma\vert)\)位运算......
  • P11071 「QMSOI R1」 Distorted Fate
    介绍一种好想、在线、空间小、跑的还挺快的做法(?)先暂时不考虑修改,只考虑怎么快速求解询问。询问相当于区间内前缀按位或的和。根据按位或的性质,当区间内某个值在某一位下是\(1\),那么所有包含这个值的前缀的按位或结果在该位下都为\(1\)。考虑拆位,单独考虑每一位对答案的贡献,......
  • C++【全特化】【半特化】【继承方式权限】【继承使用】【菱形继承的探究】【组合与继
    目录类模板的特化全特化偏特化特化部分参数对参数类型进行一定的限制关于*&的讨论特化的优先级类模板的声明和定义分离​编辑继承初学继承概念理解继承方式继承权限继承切割与切片继承的作用域继承的默认构造成员函数继承的默认构造继承的拷贝构造继承的赋......
  • 删除字符串末尾的*(星号)
    要求假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除,例如,字符串中的内容为:****A*BC*DEF*G******,删除后,字符串中的内容应当是:***A*BC*DEF*G。在编写函数时,不得使用C语言提供的字符串函数。(不能使用strlen)解......
  • LeetCode 2390. 从字符串中移除星号(字符串、栈)
    题目:2390.从字符串中移除星号思路:使用栈就可以,这里string也可以实现栈的效果classSolution{public:stringremoveStars(strings){stringe="";for(autox:s){if(x=='*')e.pop_back();elsee.push_back(x);......
  • 2390. 从字符串中移除星号
    给你一个包含若干星号*的字符串s。在一步操作中,你可以:选中s中的一个星号。移除星号左侧最近的那个非星号字符,并移除该星号自身。返回移除所有星号之后的字符串。注意:生成的输入保证总是可以执行题面中描述的操作。可以证明结果字符串是唯一的。示例1:输入:s=......
  • springboot招生管理系统(11071)
     有需要的同学,源代码和配套文档领取,加文章最下方的名片哦一、项目演示项目演示视频二、资料介绍完整源代码(前后端源代码+SQL脚本)配套文档(LW+PPT+开题报告)远程调试控屏包运行三、技术介绍Java语言SSM框架SpringBoot框架Vue框架JSP页面Mysql数据库IDEA/Eclipse开发四、项......
  • c语言菱形代码(附解析)
    一些新手对打印菱形还是有点问题。接下来我就详细讲解一下如何打印菱形。源代码为#include<stdio.h>intmain(void){  intn,a=0,b=0,k=0;  inti[100]={0};//这里我们默认边长小于等于50  printf("请输入菱形的边长");  scanf("%d",&n);首先先......
  • 创建菱形图案时的数学思维
    目录前言附:样例1.1固定生成5*5大小的菱形(最简单最基本的图形生成)2.1生成n*n大小的菱形(本质上缩小或增大了基本图形)3.1生成n*m大小的菱形(本质上在第二种变化基础上增加了角度变化)一.固定生成5*5基本大小的菱形(后文中称其为基础菱形)1. 分析原理1.1 代码逻辑1.2数......
  • 根据输入结果打印空心菱形
    #通过输入一个奇数表现打印空心菱形的行数大致思想把整个菱形分为上下两部分(正三角和倒三角),再根据输入的数来判断正三角行数进行打印,其次再打印倒三角,通过while嵌套while来分别打印正三角和到倒三角,代码如下:(看不懂的地方可以私聊或者直接评论,如果有可以优化的地方也感谢反馈)#......