「Mac玩转仓颉内测版47」小学奥数篇10 - 数列求和

news2025/1/11 12:59:00

本篇将通过 PythonCangjie 双语实现数列求和的计算。通过这个题目,学生将学会如何通过公式法循环法求解等差数列与等比数列的和。


关键词
  • 小学奥数
  • Python + Cangjie
  • 数列求和

一、题目描述

编写一个程序,计算等差数列和等比数列的和。用户输入首项公差/公比以及项数,程序将分别输出等差数列等比数列的和。

  • 等差数列和公式S = n * (a1 + an) / 2
    其中,a1 是首项,an = a1 + (n - 1) * d 是末项,n 为项数。
  • 等比数列和公式S = a1 * (1 - r^n) / (1 - r)(当 r ≠ 1

二、Python 实现
# 接收用户输入
a1 = float(input("请输入首项 a1: "))  # 输入首项
d = float(input("请输入公差 d: "))    # 输入等差数列的公差
r = float(input("请输入公比 r: "))    # 输入等比数列的公比
n = int(input("请输入项数 n: "))      # 输入项数

# 计算等差数列的和
an = a1 + (n - 1) * d  # 根据公式计算等差数列的末项
arithmetic_sum = n * (a1 + an) / 2  # 等差数列求和公式

# 计算等比数列的和
if r == 1:
    geometric_sum = n * a1  # 当公比为1时的求和公式
else:
    geometric_sum = a1 * (1 - r ** n) / (1 - r)  # 一般情况下的等比数列求和

# 输出结果,保留两位小数
print(f"等差数列的和: {arithmetic_sum:.2f}")
print(f"等比数列的和: {geometric_sum:.2f}")

三、Cangjie 实现
package cjcDemo

import std.convert.*    // 导入数据转换模块
import std.console.*    // 导入控制台输入输出模块
import std.format.*     // 导入格式化模块
import std.math.*       // 导入数学模块

// 定义函数接收并转换用户输入为 Int64
func inputInt(info: String): Int64 {
    print(info)  // 输出提示信息
    let number: Int64 = Int64.parse(Console.stdIn.readln().getOrThrow())  // 读取并转换输入
    return number
}

// 定义函数接收并转换用户输入为 Float64
func inputFloat(info: String): Float64 {
    print(info)  // 输出提示信息
    let number: Float64 = Float64.parse(Console.stdIn.readln().getOrThrow())  // 读取并转换输入
    return number
}

main(): Int64 {
    // 接收用户输入的首项、公差、公比和项数
    let a1 = inputFloat("请输入首项 a1: ")
    let d = inputFloat("请输入公差 d: ")
    let r = inputFloat("请输入公比 r: ")
    let n = inputInt("请输入项数 n: ")

    // 计算等差数列的末项和总和
    let an = a1 + Float64(n - 1) * d
    let arithmetic_sum = Float64(n) * (a1 + an) / 2.0

    // 根据公比是否为1计算等比数列的和
    let geometric_sum = if (r == 1.0) {
        Float64(n) * a1
    } else {
        a1 * (1.0 - pow(r, n)) / (1.0 - r)
    }

    // 输出结果,保留两位小数
    println("等差数列的和: ${arithmetic_sum.format("0.2")}")
    println("等比数列的和: ${geometric_sum.format("0.2")}")

    return 0
}

四、图形展示(扩展部分)

以下代码使用 Python 生成数列求和的可视化图形。本部分是进阶扩展内容,当前阶段不要求理解

from PIL import Image, ImageDraw, ImageFont

# 创建画布
img = Image.new('RGB', (600, 300), color='white')
draw = ImageDraw.Draw(img)
font = ImageFont.load_default()

# 绘制数列求和的结果
draw.text((10, 10), "等差数列的和: 25.00", fill="black", font=font)
draw.text((10, 50), "等比数列的和: 121.00", fill="black", font=font)

# 保存图像
img_path = "sequence_sum.png"
img.save(img_path)
print(f"图形已保存为 {img_path}")

生成的图像如下:
sequence_sum.png


五、示例执行

示例 1

输入:
首项 a1: 1
公差 d: 2
公比 r: 3
项数 n: 5
输出:
等差数列的和: 25.00
等比数列的和: 121.00

示例 2

输入:
首项 a1: 2
公差 d: 0
公比 r: 1
项数 n: 4
输出:
等差数列的和: 8.00
等比数列的和: 8.00

六、小结

通过这道数列求和的题目,学生学会了等差数列等比数列的求和公式,并掌握了如何通过编程实现数列的计算。


上一篇: 「Mac玩转仓颉内测版46」小学奥数篇9 - 基础概率计算
下一篇: 「Mac玩转仓颉内测版48」小学奥数篇11 - 最大公约数与最小公倍数

作者:SoraLuna
链接:https://www.nutpi.net/thread?topicId=394
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2256916.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Robot Framework的 跳出 for循环

一. 简介 前面简单学习了一下,robotframework中的 for循环语句,文章如下: Robot Framework的 for循环语句-CSDN博客 本文继续学习 有关 for循环的其他操作,例如跳出 for循环,或者退出某一次循环等操作。 二. Robo…

nonolog起步笔记-4-Server端的两个线程

nonolog起步笔记-4-Server端的两个线程 Server端的两个线程两个线程的角色与各自的职责RuntimeLogger::compressionThreadMain线程 详细学习一下相关的代码第三个线程第一次出现原位置swip buffer Server端的两个线程 如前所述,nanolog的server端,相对而…

️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南20241206

🛠️ 在 Windows WSL 上部署 Ollama 和大语言模型的完整指南 📝 引言 随着大语言模型(LLM)和人工智能的飞速发展,越来越多的开发者尝试在本地环境中部署大模型进行实验。然而,由于资源需求高、网络限制多…

js:事件监听

事件监听 事件监听:让程序检测是否有事件产生,一旦有事件触发,就调用一个函数做出响应,也称为绑定事件或注册事件 事件:编程系统内发生的动作或发生的事情 比如用户单击一个按钮下拉菜单 添加事件监听 事件监听三要…

C# (WinForms) 使用 iTextSharp 库将图片转换为 PDF

iTextSharp简介 iTextSharp 是一个开源的 .NET 库,主要用于创建和操作 PDF 文档。它是 iText 的 .NET 版本,iText 是一个广泛使用的 Java 库。iTextSharp 继承了 iText 的核心功能并进行了适应 .NET 平台的调整。 iTextSharp 的主要功能包括&#xff1a…

使用 WebRtcStreamer 实现实时视频流播放

WebRtcStreamer 是一个基于 WebRTC 协议的轻量级开源工具,可以在浏览器中直接播放 RTSP 视频流。它利用 WebRTC 的强大功能,提供低延迟的视频流播放体验,非常适合实时监控和其他视频流应用场景。 本文将介绍如何在Vue.js项目中使用 WebRtcSt…

mysql5.7和mysql8.0安装教程(超详细)

目录 一、简介 1.1 什么是数据库 1.2 什么是数据库管理系统(DBMS) 1.3 数据库的作用 二、安装MySQL 1.1 国内yum源安装MySQL5.7(centos7) (1)安装4个软件包 (2)找到4个软件包…

ALSA笔记

alsa笔记 ALSA(Advanced Linux Sound Architecture)简介 以上是android和linux系统的音频整体架构图,他们不同的区别主要是在用户空间,Linux通过ALSA-Lib来和ALSA交互,而android则是tingyAlsa,其位于aosp源码根目录的/external/tinyalsa下; 在Kernel层,Alsa向上封装的D…

哈希表实现

哈希概念 哈希(hash)又称散列,是一种组织数据的方式。从译名来看,有散乱排列的意思。本质就是通过哈希函数把关键字 Key 跟存储位置建立一个映射关系,查找时通过这个哈希函数计算出 Key 存储的位置,进行快…

web复习(四)

JavaScript编程 1.计算圆的面积。 (1)表单中设置2个文本框、1个按钮、1个重置按钮,其中圆的面积文本框设置为只读; (2)编写两个自定义函数,分别是计算圆的面积函数area(radius&…

第六届地博会世界酒中国菜助力广州龙美地标美食公司推动地标发展

第六届知交会暨地博会:世界酒中国菜助力广州龙美地标美食公司推动地标产品创新发展 2024年12月9日至11日,第六届粤港澳大湾区知识产权交易博览会暨国际地理标志产品交易博览会在中新广州知识城盛大启幕。本届盛会吸引了全球众多知识产权领域的专业人士和…

【期末复习】编译原理

1. 语法描述 1.1. 上下文无关文法 1.2. 句子 & 句型 & 语言 推导出来的都是句型但是如果句型中只含有终结符,那就是句子所有的句子合起来,才是语言 1.3. 文法 文法就是推导的式子。 1.4. 文法二义性 1.5. 文法二义性证明——根据最左 \ 最右推…

AI绘画设计实战-Day2

Stable Diffusion 提示词前缀 FF,(masterpiece:1.2),best quality,highres,extremely detailed CG,perfect lighting,8k wallpaper,anime,comic,game CG, FF,(杰作:1.2),最高质量,高分辨率,极其…

python数据分析之爬虫基础:requests详解

1、requests基本使用 1.1、requests介绍 requests是python中一个常用于发送HTTP请求的第三方库,它极大地简化了web服务交互的过程。它是唯一的一个非转基因的python HTTP库,人类可以安全享用。 1.2、requests库的安装 pip install -i https://pypi.tu…

鸿雁电器发力,能否抢占康养卫浴新蓝海?

经济下行,叠加房地产行业的调整以及数智化浪潮的强劲推动,建材行业正面临着前所未有的变革与机遇。为了更好地把握行业趋势,求新求变,12月9日,鸿雁电器在青山湖园区鸿雁物联网大厦17楼鸿鹄厅成功举办了第四届“智创变革…

Scratch教学作品 | 3D飞行模拟器——体验飞行的无限乐趣! ✈️

今天为大家推荐一款令人惊叹的Scratch作品——《3D飞行模拟器》!由BamBozzle制作,这款游戏完全用Scratch构建,带你体验开放世界飞行的自由与乐趣。从起飞到降落,每一步都需要你的精准操作!更棒的是,这款游戏…

Linux服务器运维管理面板之1panel

华子目录 安装1panel使用卸载浏览器登录 安装 网站:https://community.fit2cloud.com/#/products/1panel/downloads 解压 [rootdocker-node1 ~]# tar -zxf 1panel-v1.10.13-lts-linux-amd64.tar.gz[rootdocker-node1 ~]# cd 1panel-v1.10.13-lts-linux-amd64/ [ro…

SpringBoot【二】yaml、properties两配置文件介绍及使用

一、前言 续上一篇咱们已经搭建好了一个springboot框架雏形。但是很多初学的小伙伴私信bug菌说,在开发项目中,为啥.yaml的配置文件也能配置,SpringBoot 是提供了两种2 种全局的配置文件嘛,这两种配置有何区别,能否给大…

学习笔记063——通过使用 aspose-words 将 Word 转 PDF 时,遇到的字体改变以及乱码问题

文章目录 1、问题描述:2、解决方法: 1、问题描述: Java项目中,有个需要将word转pdf的需求。本人通过使用aspose-words来转换的。在Windows中,转换是完全正常的。但是当部署到服务器时,会出现转换生成的pdf…

Linux下redis环境的搭建

1.redis的下载 redis官网下载redis的linux压缩包,官网地址:Redis下载 网盘链接: 通过网盘分享的文件:redis-5.0.4.tar.gz 链接: https://pan.baidu.com/s/1cz3ifYrDcHWZXmT1fNzBrQ?pwdehgj 提取码: ehgj 2.redis安装与配置 将包上传到 /…