打印菱形的正确思路

短信验证码接收平台完整搭建教程(超详细版,附完整源码) 在网站注册、用户登录、找回密码等功能中,验证码(特别是短信验证码)已成为验证用户身份的常见方式。本教程将详细介绍如何从零搭建一个短信验证码接收平台,用于保存、展示并管理来自短信网关或中间转发程序提交的验证码数据。✅ 教程适合有基本 Python/HTML 基础的开发者🚫 禁止用于任何违法用途,仅供学习参考✅ 支持通过 POST 接口接收短信验证码✅ 支持通过网页实时查看验证码历史记录✅ 验证码信息保存在 SQLite 数据库✅ 支持时间戳排序、查询最新验证码。 阅读详情

打印✳图形一般都是通过控制行列内容发生对应的变化形成相对应的图形的

打印菱形:首先我们要知道,菱形的组成部分,分别有一个正的等腰三角形和倒的等腰三角形构成,我们一般打印的直角三角形都是不用在每行的'*'之前打印空格的,但是打印正的等边三角形是需要在“*”之前打印规律的空格的,效果图如下:

// 1    *            // 2   *                // 3   *
//      **           //     ***              //     **
//      ***          //     *****            //     ****
//      ****         //     *******          //     ******
//      *****        //     *********        //     ********
//      ******       //     ***********      //     **********


// 4      *         // 5       *            // 6            *
//       ***        //        ***           //            ***
//      *****       //       *****          //          *****
//     *******      //      *******         //        *******
//    *********     //       *****          //      *********      
//   ***********    //        ***           //    ***********
                    //         *

//如上图第一种情况,给出两个for循环即可解决,一个循环嵌套在另一个循环中,
//外循环打印行,内循环打印每行所满足条件需要打印的列内容,通俗讲就是打印星星的具体个数
//代码如下:
for(var i=0;i<6;i++){
    //在外循环层定义行
    var line = ''
    //内层循环控制每行与每列之间的数量关系,由上图可知,行数每增加一行,对应的"*"也加一个
    //所以在这里行与列的关系显而易见,在i为0时,也就是行数打印为第一行时,此时需要打印一个"*",因此在内循环中,i进入的第一次就需要满足打印"*"的条件,因此迭代条件为j<i+1,谈若此时i不+1,则第一行则不会打印"*"
    for(j=0;j<i+1;j++){
        line += '*'
    }
    console.log(line);//在外层循环输出行line,即可得到对应的行数以及之前循环累加的每行的"*"数量
}


//上图第二种情况与第一种情况唯一的不同就在于行数与每列对应的"*"数量的关系
//由图可知,我们现在得到的是一个奇数列,按照奇数列打印行的规律,同样的我们还是现针对现有行数把
//当前的行数打印出来
for(var i=0;i<6;i++){
    var line = ''
    //此时我们可以得到的行数与对应的每列"*"的数量关系是第一行打印一个*,第二行打印三个*.....
    for(var j=0;j<2*i+1;j++){
        line += '*'
    }
  console.log(line);
}


//上图第三种情况为第一行打印一个,其余行数为偶数列,我们可以把第一行单独列出来
//打印第一行无规律的
for (var m = 0; m < 1; m++) {
    var line = '*'
    console.log(line);
}
//以下为有规律的序列
for(var i=1;i<=6;i++){
    var line = ''
    for(j=0;j<2*i;j++){
        line += '*'
    }
    console.log(line)
}

//上图第四种情况是一个等腰三角形,就意味着不到最后一行,前面的每一行肯定都需要加空格,所以
//我们还需去循环一个打印空格的列,其他的和图二的无差异
for(var i=0;i<6;i++){
    var line = ''
    //准备一个循环打印空格的,由上图我们可以观察出来,每行递进空格对应-1,规律为5 4 3 2 1 0
    //其实这种规律只是跟我们打印图一*的情况相反,由此可以得出打印空格的循环
    for(k=0;k<5-i;k++){//这里用5-i的原因是最后一行并不需要打印空格,空格数量为0,所以可以忽
//略掉最后一行
        line += ' '
    }
    for(var j=0;j<2*i+1;j++){
        line +='*'
    }
    console.log(line)
}

//上图第五种情况为一个菱形,无非就是要求我们打一个正的等腰三角形,一个倒的等腰三角形
//因此我们需要把菱形拆分成两个部分,中间*数量最多的那一行无论你是划分给上半部分或者是下半部分
//都可以,这里我们按照划分给上半部分来解决这个问题
//首先先将上半部分的等腰三角形部分打印出来
//这种情况和图四的情况是一样的,直接copy图4的代码
//打印上半部分
for(var i=0;i<4;i++){
    var line = ''
    //准备一个循环打印空格的,由上图我们可以观察出来,每行递进空格对应-1,规律为5 4 3 2 1 0
    //其实这种规律只是跟我们打印图一*的情况相反,由此可以得出打印空格的循环
    for(k=0;k<3-i;k++){//这里用5-i的原因是最后一行并不需要打印空格,空格数量为0,所以可以忽
//略掉最后一行
        line += ' '
    }
    for(var j=0;j<2*i+1;j++){
        line +='*'
    }
    console.log(line)
}
//打印下半部分
for(var i=1;i<=3;i++){//这里从1开始是因为需要满足在第一行就开始打印一个空格的条件,初始值做了调整必定会影响下面的列*个数打印,所以注意留意下面列内容*打印的循环进入跳出的条件
    var line = ''
    //打印空格的循环,此时的空格规律是1 2 3 
    for(var k=0;k<i;k++){
        line += ' '
    }
    for(var j=0;j<8-(2*i+1);j++){
        line += '*'
    }
    console.log(line)
}

//上图第六种情况则是先打印空格,空格为降序规律为10 8 6 4 2 0,每列*为升序,规律为1 3 5 7...
//外层循环打印行
for(var i=1;i<=6;i++){//此处i初始值从1开始是因为要配合下面打印空格的条件,因为空格打出的是偶数列,所以括号里面改成对应的2*i,再用当前行数*2去减这个(2*i),就得到对应的空格打印的循环进入跳出的限制条件
    //定义一个行
    var line = ''
    //打印每行空格
    for(var k=0;k<12-(2*i);k++){
        line += ' '
    }
    //打印列内容
    for(var j=0;j<2*i-1;j++){
        line += '*'
    }
    console.log(line)
}

mojoPortal 路径穿越漏洞复现(CVE-2025-28367)(附脚本)  在 mojoPortal CMS 版本 <=2.9.0.1 中发现了一个导致 ViewState 反序列化的目录遍历漏洞。通过利用此问题,未经身份验证的攻击者可以泄露 Web 根目录中的敏感文件,包括应用程序的文件。此配置文件包含用于验证和解密 ViewState 数据的文件。知道此密钥后,网络攻击者可以构建恶意 ViewState 有效负载,从而导致在底层服务器上执行远程代码。(CVE-2025-28367) 阅读详情

相关推荐

二阶FLL辅助三阶PLL环路的代码解读

今天对GNSS接收机里面的载波跟踪环路代码进行了解读 以下是个人的一点见解 % 载波环第二步:环路滤波器 二阶FLL辅助三阶PLL环路 carrLoopS0 = lastCarrLoopS0 + (phaseErr*tau0PLL + freqErr*tau1FLL) * PDIcarr; carrLoopS1 = lastCarrLoopS1 + (tau1PLL*phaseErr + carrLoopS0 + tau2FLL*freqErr) * PD

LWN7321的博客 2631

打印菱形图案 (15 分)

本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。 输入格式: 输入在一行中给出一个正的奇数n。 输出格式: 输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。 输入样例: 7 结尾无空行 输出样例: * * * * * * * * * * * * * * * * * * * * * * * * * 结尾无空行 C (gcc) #include <stdio.h> int m

m0_62725146的博客 371

BOE CHPI协议解析:高速显示驱动的核心技术

本文深入解析了BOE CHPI协议,这是一种为高分辨率、高刷新率显示面板设计的时钟嵌入式高速点对点接口技术。文章详细阐述了其三层架构(物理层、链路层、协议层)、核心机制(如链路训练与BCC通道)以及如何通过高速串行差分传输解决大尺寸屏幕内部数据传输的带宽与干扰难题,是驱动8K、窄边框等高端显示应用的关键核心技术。

m9n0o的博客 545

打印菱形(两种思路)

只有特别的人才能发现特别的人

weixin_75128035的博客 4997

告别Qt Creator?手把手教你用VSCode+MinGW调试QT项目(附完整launch.json配置)

本文详细介绍了如何在VSCode中配置完整的QT开发环境,特别是针对使用MinGW编译器的用户。从环境搭建到调试配置,包括生成.pro文件、Makefile,以及配置task.json和launch.json文件,帮助开发者高效调试QT项目。

weixin_27180827的博客 187

(NOI)打表骗分过样例,暴力枚举出奇迹1.8.22题解

                                                                                                                                                           48818 B题解 #include &lt;iostream&gt; u...

Owen20071026的博客 3128

输出菱形

题目:输出菱形。分析:观察规律:因为菱形是对称图形,可以分为上半部分和下半部分。总体上看,上半部分随着行数的增加,*个数在增加,空格数在减小。下半部分恰好相反,行数增加,*个数减小,空格数增加。具体来看,上半部分,假设共有7行。第一行*前有6个空格,只有1个*;第二行*前有5个空格,共有3个*;第三行*前有4个空格,共有5个*……所以,第i行*前有(行数-i)个空格,有(2*i-1)个*。每打印完...

smell201611010513的博客 338

Qt | 开发过程中总结的经验

关于如何判断自己的Qt库是多少位,有个误区就是很多人要么看成了QtCreator的关于信息中列出的位数,要么以为自己是64位的系统就认为是64位的Qt,最终要在Qt构建套件中查看具体位数,大概从Qt5.14开始基本上很少提供32位的库,尤其是Qt6.0以后基本上默认就是只有64位的库了,这也是顺应时代潮流,毕竟不久的将来(个人预计2030年以前)基本上32位的系统占比不超过1%,放心大胆的用64位的库吧,抛弃烦人的32位以及XP系统。Qt常用类的头文件的函数看完学完使用一遍并加以融会贯通,月薪30K起步。

Qt历险记,专注Qt技术,三年医疗设备研发经验,1年机器视觉研发经验,半年柔性传感研发经验。 493

打印菱形的详解

首项和n有关,且首项为n-1,公差为-1,则 ai=(n-1)+(i-1)*(-1)= n - i (递减);可以看出:(注:首项是指 i = 1 时 * 号或者 空格 的个数)可以看出:(递增只和 i 有关,递减和n,i 都有关,上半部分结论)一.将菱形拆解成上半部分(n行自行输入n)和下半部分(n-1行)(2) * 号个数和n, i 都有关。(3) 空格 个数只和 i 有关。二.下半部分(n-1行)

2301_80112388的博客 394

【深度解析】解决 NVIDIA 显卡“掉卡”与 Xid 79 错误:开启持久化模式 (Persistence Mode)

【深度解析】解决 NVIDIA 显卡“掉卡”与 Xid 79 错误:开启持久化模式 (Persistence Mode)

Edward的博客 865

模型压缩技术:剪枝、量化与知识蒸馏实战

模型压缩技术:剪枝、量化与知识蒸馏实战,在深度学习领域,模型的性能往往与模型的规模紧密相关,更大的模型通常能学习到更复杂的模式,从而在任务中取得更好的效果。然而,随着模型规模的不断增大,其在实际应用中面临着诸多挑战,如内存占用高、计算资源需求大、推理速度慢等问题,这使得在资源受限的设备(如移动设备、嵌入式设备)上部署变得困难重重。模型压缩技术应运而生,它旨在在尽可能保持模型性能的前提下,通过各种方法减少模型的参数数量和计算量,提高模型的效率和可部署性。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 5万+

JavaScript 实现输出奇数菱形星星图案

使用js语言实现输出菱形团

weixin_43991637的博客 346

基于YOLO的智能视频监控异常行为检测研究:从算法原理到落地部署的全栈实践

本文深入探讨如何利用 YOLO(You Only Look Once)系列算法构建一套端到端的异常行为检测系统。文章首先回顾 YOLOv8 在时空建模上的局限,然后提出“YOLO-STA(Spatio-Temporal Aggregation)”轻量级改进框架,在公开数据集 UCF-Crime 上将异常行为检测的 mAP@0.5 从 72.4 提升到 80.1;接着给出完整训练、推理、部署的 Python 代码(PyTorch + TensorRT),并介绍如何仅用 4 GB 显存的 Jetson Xavi

博客 1336

c语言 - 打印菱形(小白入手,思路简单,正确打印!!)(看这一篇就够了!)

题:打印菱形 思路: 菱形分为上半部分三角形和下半部分倒三角形两部分,中间空出的地方为空格。 空格个数:第一行符号在正中间,所以空格个数为(n-1)/2。 后面每一行都比上一行多了两个字符,即空格数量每一行-2,得第 i 行空格个数:(n-1)/2 - 2(i-1)。 字符数:前半部分递增,后半部分递减,所以分前后两部分输出。 第一行中间一个字符,之后每一行前半部分相对于上一行多了两个字符,所以第 i 行前半部分字符个数为2i-1。 后半部分字符,比前半部分少1,故为2i-2。 在这里插入代码片 .

weixin_51136573的博客 1770

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

(第六届国赛)C组 蓝桥杯java - 空心菱形

标题:空心菱形 小明刚刚开发了一个小程序,可以打印出任意规模的空心菱形,规模为6时,如下图: (如果有对齐问题,参看【图1.png】) 他一高兴,踢掉了电源,最后一次修改没有保存… 毛病出在划线的部分。 请你帮助小明分析程序,填写划线部分缺失的代码。 答案 pr(i+1,n2-i2-1)+"\n"; 思路 对于图形题,我一般都是在代码里不断的调,不断的试。 public class Demo3 { static String pr(int m, int n) { String s = ""; f

balabce的博客 185

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

PTA浙大版《C语言程序设计(第3版)》题目集习题4-9 打印菱形图案

习题4-9 打印菱形图案 (15 分) 初步思路如下: 但运行只有部分满足题意 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <math.h> int main() { int n,j=1,i,x; scanf("%d",&x); n=x; for(;n!=-1;n-=2){ for(i=0;i<n-1;i++){ printf(" "); }

m0_56566228的博客 461

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

打印菱形图案的两种方法

打印菱形图案 本题要求编写程序,打印一个高度为n的、由“*”组成的正菱形图案。 输入格式: 输入在一行中给出一个正的奇数n。 输出格式: 输出由n行星号“*”组成的菱形,如样例所示。每个星号后跟一个空格。 输入样例: 7 输出样例: 方法一: 先找出前4行的规律,再找出后4行的规律。 前三行: 行数 第一个*之前的空格数 *的数量 1 6 1 2 4 3 3...

星宇康的博客 2万+

C++打印菱形相关图形

1.打印 * 型菱形 /*------------------------ 功能:打印*菱形 运行结果为: * *** ***** ******* ***** *** * -------------------------- Author: Zhang Kaizhou Date: 2019-3-26 16:54:17 -------------------------*/ ...

田野麦子 9049

【技术】Java打印菱形

Java打印菱形Java打印菱形先看效果:题目分析代码 Java打印菱形 先看效果: 题目分析 1、星号前面的空白要用空格代替。 2、把图形分为上下两部分,分别找出行数与“空格”和“*”的关系 上半部分(正三角): 空格个数与行数的关系 橘色框:代表行号。 红色框:正三角形成的最大行号(maxNum)。计算公式:(总行数 + 1)/ 2 &nbsp;&nbsp;&nbsp;&nbsp;&nb...

Riu_Peter 2万+

c语言 打印任意行数的菱形图案

完整代码用两种方法实现打印任意行数的实心菱形,并帮助理解打印菱形的过程

static_diana的博客 5784

C++ 打印菱形(实心和空心)

打印菱形 打印菱形1、打印实心菱形2、打印空心菱形 打印菱形 1、打印实心菱形 #include<iostream> using namespace std; int main() { cout << "Please enter the side length of the diamond:"; int n; cin >> n; for (int i = 0; i<n; i++) // 分为上半层打印和下半层打印,首先打

JMW1407的博客 2万+

菱形的打印

C语言初阶菱形的打印~

hu_yuchen的博客 3389

【C语言经典例题】打印菱形

由此我们可以看出,上面的三角形,高为 n/2+1 ,而下面的三角形则是 n/2。我们可以看到,星号* 能打印在中间,前面一定有空格把他顶过去的。至此,上下两个三角形的规律已全部找出,接下来只要打印出来就好啦。在下半部分的三角形中,星号数 = n - 2 * 空格数。输入一个整数n(n为奇数),n为菱形的高,打印出该菱形。在上半部分的三角形中,星号数 = 行数 * 2 - 1。不难看出,在下半部分的三角形中。

C_Small_Cai的博客 9402

c语言打印空心菱形的思路

其实打印三角形啦,菱形啦,思路都是一样一样的, 都是按行找规律,然后按照每行的规律按行打印就好了。。。 比如以下是每条边有n=4个的菱形(边长是4)。 c语言都是按行输出的,我们只要分析第i行要输出些什么就好了: 4 // 3 5 // ...

qq_45893999的博客 2987

C语言实现——打印菱形

目录 前言 如何实现 代码实现 定义一个变量line来接收输入的行数 实现上半部分 实现下半部分 代码汇总 前言 输入一个数,打印对应的菱形 该菱形表现为: 从第一行到中间行的行数为输入的数, 从中间行到结束行的行数为输入的数。 如图:输入7,打印以下菱形 如何实现 实现的思路如下: 经过观察可以发现,菱形是由空格和 *组成的,就可以分四步来实现 1.定义一个变量line来接收输入的行数,假设输入值为7 2.将菱形分解为两部分,上半部分和下半部分 定义一...

weixin_60976990的博客 2万+

C语言之打印菱形

菱形打印以及进阶

龙行sky的博客 1853
上一篇: 运动函数 续
下一篇: 浅拷贝与深拷贝的细节(js方向)
Internet_Z
博客等级 码龄5年 3粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值