2019/09/11 02-九九乘法表变体和菱形变体打印

本文探讨了在编程面试中常见的菱形图案打印问题,解析了其背后的算法逻辑,包括如何通过循环和数学计算确定每行的空格与星号数量,以及如何利用对称性和坐标系优化解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
很多面试就问你工作中遇到的问题,就装不出来了,但是编程水平可以,也是有机遇让你碰到的
查看下面的题该如何做
j和i的关系,需要弄清除
j都是小于i的
在这里插入图片描述
测试一下打出来的样子,先查看数据是否是你想要的在这里插入图片描述
其实下面空白的地方是有打印单位的在这里插入图片描述
应该是print的换行符导致的在这里插入图片描述
其实是第一行除了问题需要控制一下在这里插入图片描述
把这个用format函数右对齐。也一样,在这里插入图片描述
需要把line向右推
在这里插入图片描述
两种思路,要么加空格,要么在右边❀线对其在这里插入图片描述
40的边界在这里
在这里插入图片描述在这里插入图片描述在这里插入图片描述
**
可以认为是一个方块
第一行前面三个空格,1个星号,总空格6个
行 前置空格 星号 后置空格 总空格
1 3 1 3 6
2 2 3 2 4
3 1 5 1 2
4 0 7 1 0
5 1 5 1 2
6 2 3 2 4
7 3 1 3 6** 在这里插入图片描述
行号可以改变在这里插入图片描述
可以不用后面的,7 就可以计算因为
型号+总空格刚好=7
在这里插入图片描述
这道题可以用对称来做
7//2,整除向下等于3
第一次循环,如果是e=-3,
(7-2*e)算出的是个数,乘以 * 号

在这里插入图片描述
第二次循环
i=-3,i就需要转换成正数
print先打空格,后面打星号,后置空格无关,别人也不看
在这里插入图片描述
**如果不会写,就这么写
**在这里插入图片描述在这里插入图片描述
因为有对称性,所以可以用range在这里插入图片描述
还可以用坐标来写在这里插入图片描述在这里插入图片描述
**这个这么理解、
第一次j=4
第一行菱形,0,1,2,3,其实就是4
第二次
i=-2 abs去绝对值 j的范围2<j<6 =345
找到的规律就是,这一行总共是7个但是能够打的数字就那么几个,然后每行从几开始打,到几结束,剩下的都是补空格 **

下面的方法是,利用横纵坐标,中间的点是中心在这里插入图片描述
下面的使用了函数,就可以简化一下
在这里插入图片描述
左移等于除以2,
在这里插入图片描述
时间复杂度这个最低
在这里插入图片描述
思路在这里插入图片描述在这里插入图片描述
可以用坐标系,也可以用绝对值在这里插入图片描述
相似的地方在这里插入图片描述
打印的东西,只跟,序列号,星号,前置空格有关在这里插入图片描述
要这两个规律
要么是
7//2,
要么是23+1=7
5//2=2
2
2+1=5
在这里插入图片描述在这里插入图片描述
写程序还是要看里面的规律在这里插入图片描述在这里插入图片描述
中间的7是特列在这里插入图片描述
在这里插入图片描述
还有7的那行,比较特殊,要打印所有的星号,等于0打印一条总数在这里插入图片描述在这里插入图片描述在这里插入图片描述
主要还是看算法,坐标的话,还需要两层循环

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值