鱼C论坛

 找回密码
 立即注册
查看: 7191|回复: 24

[已解决]数字三角形算法编程

[复制链接]
发表于 2022-9-29 22:57:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
麻烦针对图中题目要求,写个算法程序!
最佳答案
2022-9-30 10:49:04
本帖最后由 jackz007 于 2022-9-30 13:09 编辑
  1. e = [list(map(int , input() . split())) for _ in range(5)]   # 获取 5 组键盘输入,e = [[s , d , r] , [s , d , r] , . . .]
  2. print()
  3. for k in range(5):                                           # 循环 5 次
  4.     s , d , r = e[k]                                         # 取出每次的 s、d、r
  5.     for i in range(r):                                       # 循环 r 次(三角形的层数),目的是递推最后一层(行)的元素序列
  6.         x = []                                               # x 用于保存通过计算得到的单行元素序列
  7.         for j in range(i + 1):                               # 循环计算第 i + 1 行的元素序列
  8.             while s > 9:                                     # 确保 s 只有一位数
  9.                 s = sum(map(int , str(s)))                   # str(s) 把 s 变为字符串,map(int , str(s)) 把各个位上的数据变成一位数的数字序列,sum(map(int , str(s))) 对整个数字序列求和。
  10.             x . append(s)                                    # 把 s 添加到列表 x 中
  11.             s += d                                           # 累加计算下一个元素
  12.     print('%d. %d' % (k + 1 , sum(x)))                       # 计算并打印索引为 k 三角形最后一行所有元素的和
复制代码

     【运行实况】:
  1. D:\[00.Exerciese.2022]\Python>python x.py
  2. 2 3 5
  3. 221 2 4
  4. 184 231 35
  5. 71 5 27
  6. 1 24 100

  7. 1. 28
  8. 2. 17
  9. 3. 140
  10. 4. 135
  11. 5. 397

  12. D:\[00.Exerciese.2022]\Python>
复制代码
ACSL program.PNG
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2022-9-30 11:49:19 | 显示全部楼层
jackz007 发表于 2022-9-30 10:49
【版本 - 1】:

    【版本 - 2】:

谢谢解答,能解释下编程思路吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-30 11:50:00 | 显示全部楼层

谢谢解答,能解释下编程思路吗?还有您的语句含义?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-9-30 11:53:58 | 显示全部楼层
wp231957 发表于 2022-9-30 09:00
转换函数还有一种写法

谢谢反馈,您的这个解题思路是递归函数吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-6 16:23:09 | 显示全部楼层

你的代码把所有符合要求的数字打印出来了,最后一行没有求和!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-11 10:43:30 | 显示全部楼层

貌似你的代码运行有错误
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-11 11:01:16 | 显示全部楼层

感谢解答,可以解释下编程思路吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-10-11 13:07:27 | 显示全部楼层
wp231957 发表于 2022-9-30 09:00
转换函数还有一种写法

感谢回复,麻烦请解释下代码实现方法!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-16 13:01:38 | 显示全部楼层

for _ in range(5) 第一段中的这个循环 这个"_"符号是啥意思?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-16 20:09:00 | 显示全部楼层
jackz007 发表于 2022-11-16 13:07
就是 for 循环需要一个形式上的循环变量,而我又不想使用这个循环变量所以,我就用 _ 来代替。

那这个for 循环从语句中单独拿出来,要怎么写?

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-3 02:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表