SQL如何求解等比数列问题?

简介: SQL数据库开发

问题描述

一家公司第一天给你1分钱,第二天给你2分钱,第三天给你4分钱,依次类推到第30天一共给你多少钱?


问题分析

这是一个典型的等比数列的问题,我们可以借助等比数列的公式使用WHILE循环,还有CTE递归方法来求解


WHILE求解

--定义变量
DECLARE @i DECIMAL (18, 2) = 0.01, --初始为第1天0.01元
@total DECIMAL (18, 2) = 0,
@m INT = 2, --@m为每天翻多少倍
@n INT = 2, --@n为第几天,因为是第2天才开始翻倍,所以初始设为2
@Max INT = 30 --@Max为截止翻倍的那天
WHILE @n <= @Max
BEGIN
SELECT @i = @i * @m --计算当天多少钱
SELECT @total = @total + @i --计算截至当天总共多少钱
SELECT @n = @n + 1 --循环变量累加1天
END
--输出信息
SELECT @total



结果如下:

10.jpg

我们再尝试用递归查询来求解这个问题


CTE递归求解

WITH CTE (n, i, total) AS (
SELECT 1
,CAST (0.01 AS DECIMAL(18, 2)) --第1天只有0.01元
,CAST (0.01 AS DECIMAL(18, 2)) --第1天当天总共0.01元
UNION ALL
SELECT n + 1 --n加1天
,CAST (i * 2 AS DECIMAL(18, 2)) --第n + 1天有多少钱
,CAST (total + i * 2 AS DECIMAL (18, 2))
--第n + 1天当天总共多少钱
FROM CTE
WHERE n < 30 --结束递归
)
SELECT * FROM CTE


结果如下:


11.jpg

通过求解,我们发现如果一天一分钱这样等比发工资,到了第30天需要一共发你一千多万,估计老板会倾家荡产。


批注

等比数列问题很好的应用了循环计算,不管是WHILE循环还是,CTE递归查询,都是循环计算的一种。希望大家能够掌握这两个循环使用方法。



相关文章
|
2月前
|
人工智能 缓存 自然语言处理
OpenClaw阿里云部署及Skill选择保姆级教程,ClawHub 13000+Skill 中 30个必装高价值 skill 盘点
ClawHub上13000+的OpenClaw Skill让人眼花缭乱,盲目安装不仅浪费资源,还暗藏安全风险——12%的Skill存在恶意行为,可能窃取API Key、注入恶意代码或后台挖矿。真正值得装的核心Skill仅30个左右,按场景分类后按需选择,再搭配安全防护三件套,才能让OpenClaw从“单纯的工具”升级为“自我进化、安全可靠的协作伙伴”。
2353 7
|
数据可视化 数据挖掘 Python
数据分析案例-往届世界杯数据可视化
数据分析案例-往届世界杯数据可视化
1064 0
数据分析案例-往届世界杯数据可视化
autojs之停用音量上停止脚本
autojs 8.7.1自带示例中提供了某些开关
2569 0
|
2月前
|
人工智能 自然语言处理 JavaScript
零代码 OpenClaw 阿里云一键部署保姆级教程+千问/Coding Plan配置实战手册
2026年,AI自动化办公全面普及,OpenClaw(前身为Clawdbot、Moltbot)凭借自然语言指令操控、多任务自动化执行、多平台适配的核心优势,成为个人与中小企业搭建专属AI助手的首选开源轻量级工具。它无需手动编写代码,即可高效完成文档生成、文件解析、服务器运维、日程管理、代码生成等基础办公任务,搭配2026年最新汉化版全中文界面,彻底解决了原版英文操作门槛高的痛点。
217 0
|
3月前
|
人工智能 自然语言处理 安全
为什么网文平台“允许 AI 润色”以及 AI 润色的技术原理是什么?·卓伊凡
本文解析网文平台“允许AI润色”背后的逻辑:平台反对的是AI替代创作+低质量产,而非作为编辑工具的润色。文章厘清润色与生成的本质区别,详解规则型与大模型润色的技术原理,并强调剧情保留、强度可控、风格可调等关键安全机制。(239字)
739 13
|
8月前
|
敏捷开发 Dubbo Java
需求开发人日评估
本文介绍了敏捷开发中工时评估的重要方法——“人日评估”,即根据开发人员负责模块的工作量估算所需时间。内容涵盖人日定义、开发各阶段(开发、自测、联调、测试、发布)的人日参考值,以及常见需求如Excel导入导出、远程服务调用等的评估示例,帮助团队更合理地规划开发周期。
|
数据挖掘 项目管理
如何通过PDCA循环和团队协作工具实现高效项目管理?
2分钟带你快速了解PDCA循环,以及如何利用团队协作工具高效实现这一方法。
490 2
如何通过PDCA循环和团队协作工具实现高效项目管理?
|
消息中间件 运维 容灾
RocketMQ 在小米的多场景灾备实践案例
RocketMQ 在小米的多场景灾备实践案例
1883 106
RocketMQ 在小米的多场景灾备实践案例
|
消息中间件 缓存 Cloud Native
大促场景系统稳定性保障实践经验总结
11月11日0点刚过26秒,天猫双11的订单创建峰值就达到58.3万笔/秒,阿里云又一次扛住全球最大规模流量洪峰!58.3万笔/秒,这一数字是2009年第一次天猫双11的1457倍。
13957 108
大促场景系统稳定性保障实践经验总结
|
存储 Java
Java中的布尔型数据(Boolean)
Java中的布尔型数据(Boolean)
1774 0