很多面试就问你工作中遇到的问题,就装不出来了,但是编程水平可以,也是有机遇让你碰到的
查看下面的题该如何做
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
22+1=5
写程序还是要看里面的规律
中间的7是特列
还有7的那行,比较特殊,要打印所有的星号,等于0打印一条总数
主要还是看算法,坐标的话,还需要两层循环