多种方法求1+12+123+1234……

embedded/2024/9/23 5:55:56/

有网友出了一道题:

从键盘输入一个小于10的正整数n,计算1+12+123+1234……,即前n项之和。

第一眼看到题目,直觉告诉我必须使用嵌套的两个for循环,里面的循环生成每一项,外面的循环求和。错误的方向和思路让我白白浪费了三个小时都没有调试出来,大受打击,最后不得已向AI求助。

(1)sider生成的代码如下:

python">n = int(input("请输入一个小于10的正整数:"))
result = 0
number = 0
for i in range(1, n + 1):number = 10 * number + iprint(number)result += number
print(f'求和结果是{result}')

这段代码使用了双变量(result和number)、一个for循环求解,比我最开始想到的嵌套循环简单了很多。number = 10 * number + i是核心语句,是最关键的部分。程序其他地方就没有技术含量了,结果如下:

有了如此简单的答案,心态产生了微妙的变化。我反复安慰、鼓励自己:你行的!于是,想挑战使用其他方法来求解。首先想到的是递归方法求解,代码如下:

(2)递归的方法:

python">n = int(input("请输入一个小于10的正整数:"))
def f(n):if n == 1:return 1else:return 10 * f(n-1) + n   
list_created = [f(i) for i in range(1, n+1)]
print(list_created)
print(sum(list_created))

除了递归,第二种方法还涉及列表解析式和sum()函数的用法。运行得到正确答案。

第三种方法我认为很巧妙,运用了字符串、变量转换、for循环、切片等知识,代码如下:

(3)字符串的方法:

python">n = int(input("请输入一个小于10的正整数:"))
s = "123456789"
result = 0 
for i in range(1, n+1):s_temp = s[:i]value = int(s_temp)print(value)result += value
print(result)

当然,条条大路通罗马,读者若有更多方法,欢迎在下面留言分享。


http://www.ppmy.cn/embedded/19543.html

相关文章

机器学习学习 - 数据预处理

机器学习学习笔记 - 数据预处理 数据预处理是机器学习项目中不可或缺的一环,它涉及到数据的清洗、格式化、归一化、特征提取等一系列操作,以便为后续的模型训练和分析提供高质量的数据集。以下是关于数据预处理的一些关键步骤和注意事项。 一、数据准备…

vue elementui el-table 表格里边展示四分位图

vue elementui el-table 表格里边展示四分位图 直接上代码&#xff08;效果图在文章末尾&#xff09;&#xff1a; 父组件&#xff1a; <template> <el-table size"small":header-cell-style"headerCellStyle()"style"width: 100%;"…

OpenHarmony实战开发-使用SmartPerf-Host分析应用性能

简介 SmartPerf-Host是一款深入挖掘数据、细粒度展示数据的性能功耗调优工具&#xff0c;可采集CPU调度、频点、进程线程时间片、堆内存、帧率等数据&#xff0c;采集的数据通过泳道图清晰地呈现给开发者&#xff0c;同时通过GUI以可视化的方式进行分析。该工具当前为开发者提…

Docker基本操作 容器相关命令

docker run:运行镜像; docker pause:暂停容器&#xff0c;会让该容器暂时挂起&#xff1b; docker unpauser:从暂停到运行; docker stop:停止容器&#xff0c;杀死进程; docker start:重新创建进程。 docker ps&#xff1a;查看所有运行的容器及其状态&#xff0c;默认只展…

【网站项目】考研助手

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

力扣HOT100 - 543. 二叉树的直径

解题思路&#xff1a; class Solution {int ans;//记录节点数public int diameterOfBinaryTree(TreeNode root) {ans 1;depth(root);return ans - 1;//节点数减 1 就是路径长度}public int depth(TreeNode root) {if (root null) return 0;int l depth(root.left);int r de…

与 Apollo 共创生态:揭秘Apollo开放平台企业生态计划

自2013年百度开始布局自动驾驶&#xff0c;2017年推出全球首个自动驾驶开发平台Apollo。目前百度Apollo已经在自动驾驶、智能汽车等领域拥有业内领先的解决方案。截止2023年12月&#xff0c;自动驾驶出行服务平台萝卜快跑累计订单量500万。计划至2023年底将萝卜快跑自动驾驶出行…

React真的好难用

我发现React就像个宗教一样&#xff0c;网络上总有一群信徒。信徒&#xff1a;React天下第一&#xff0c;谁也不能说他不好。 网络上大佬对React的评价一般有几类&#xff1a; React跟Vue比就是手动档和自动档的区别&#xff0c;高手都开手动档。—— 就一个破打工的&#xf…