前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个if-else搞定输出棱形

一个if-else搞定输出棱形

作者头像
devi
发布2021-08-18 15:41:58
2870
发布2021-08-18 15:41:58
举报
文章被收录于专栏:搬砖记录
在这里插入图片描述
在这里插入图片描述

无论是什么编程语言,学习循环控制的时候,总会出现这道题——打印棱形。

常见的做法是:将棱形拆分成上半部分和下半部分(左半部分和右半部分),然后通过控制语句实现。

但是实际上,只需要一个判断语句就可以实现。

代码语言:javascript
复制
//行列数
int n=7;

for(int i=0;i<n;i++)
{
    for(int j=0;j<n;j++)
    {
        if ((i+j)>=3 && (i+j)<=9 &&(i-j)<=3 &&(i-j)>=-3)
            System.out.print("*");
        else
            System.out.print(" ");
    }
    System.out.println();
}

所以,if里面那一长串是什么意思?

我们都学过一些“确定定理”:

  • 确定三角形:两边之和大于第三边、两边之差小于第三边
  • 确定一个平面:三个不在同一条直线上的点确定一个平面、
  • 确定一个x的范围: x∈[a,b]

这些所谓的“确定定理”,实际上都在做一件事情:确定(最小)范围

我们高中就学过专门用于确定图形范围的知识——线性规划

建立坐标轴:

在这里插入图片描述
在这里插入图片描述

横轴为j,纵轴为i,根据红色的线 可以写出约束条件: 3<= i+j <= 9 -3<= i-j <= 3

这就是if语句中的由来。

通过线性规划,可以实现任意图形的绘图(前提是你能写出函数) 所以:

好好学数学啊! 高数里面还有更高深的线性规划

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/12/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档