【新2023】华为OD机试 - 数字反转打印 数字的排列(Python)

这篇博客介绍了如何解决华为OD机试中的一道题目——数字反转打印数字的排列。按照特定规则,数字会根据奇偶行进行正序或逆序排列,并给出详细编码思路、核心知识点和Python代码实现。参加华为OD机试时,理解并模仿解题过程能提高通过率。

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

华为 OD 清单查看地址:blog.youkuaiyun.com/hihell/category_12199275.html

数字反转打印 数字的排列

题目

小华是个很有对数字很敏感的小朋友,
他觉得数字的不同排列方式有特殊的美感。
某天,小华突发奇想,如果数字多行排列,
第一行1个数,
第二行2个,
第三行3个,
即第nn个数字,并且奇数行正序排列,
偶数行逆序排列,数字依次累加。
这样排列的数字一定很有意思,请帮小华实现。
规则总结如下:

  1. 每个数字占据4个位置,不足四位用*补位,如1打印为1***
  2. 数字之间相邻4空格
  3. 数字的打印顺序按照正序逆序交替打印,奇数行正序,偶数行逆序
  4. 最后一行数字顶格,第n-1行相对第 n 行缩进四个空格

输入

第一行输入为 N,表示打印多少行,1 <= N <= 30

输出描述

XXXX1***
3***XXXX2***

示例一

输入

2

输出

'
    1***
3***    2***
'
  • 此处输出结果中没有首尾的'

编码思路

该代码的主要思路是打印一个由数字和星号组成的倒三角形状,其中数字依次递增。首先,使用一个列表 list* 存储每一行的数字,使用布尔变量 asc 表示当前行的数字是升序还是降序。接着,使用循环逐行生成数字,将每行的数字存储到 list* 中。然后,从 list_ 中逐行生成输出,使用字符串拼接实现数字和星号的排版。最后,倒序输出所有行的字符串。

核心知识点

列表(list):Python 中的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦想橡皮擦

如有帮助,来瓶可乐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值