笨阶乘C++解法详解(力扣1006)
问题解析LeetCode 1006 “笨阶乘”要求对正整数N按递减顺序依次使用乘*、除/、加、减-四个运算符循环计算即clumsy(N) N * (N-1) / (N-2) (N-3) - (N-4) * (N-5) / (N-6) ...需返回计算结果。核心在于处理运算符优先级乘除优先于加减和循环模式。解法对比方法核心思路时间复杂度空间复杂度适用场景栈模拟用栈存储中间结果按运算符优先级处理O(N)O(N)通用性强直观模拟运算过程数学归纳观察规律推导出分段计算公式O(1)O(1)效率最高直接计算方法一栈模拟法通过栈保存待计算的值遇到乘除立即计算加减则入栈减法转为加负数最后对栈中所有元素求和。#include stack #include vector using namespace std; class Solution { public: int clumsy(int N) { stackint stk; stk.push(N); N--; int index 0; // 用于循环运算符0:*, 1:/, 2:, 3:- while (N 0) { if (index % 4 0) { // 乘法 int top stk.top(); stk.pop(); stk.push(top * N); } else if (index % 4 1) { // 除法 int top stk.top(); stk.pop(); stk.push(top / N); } else if (index % 4 2) { // 加法 stk.push(N); } else { // 减法转为加负数 stk.push(-N); } index; N--; } // 对栈中所有元素求和 int sum 0; while (!stk.empty()) { sum stk.top(); stk.pop(); } return sum; } };时间复杂度O(N)遍历 N 次。空间复杂度O(N)栈最多存储约 N/2 个元素。方法二数学归纳法O(1)通过观察 N 较大时的计算规律可发现每 4 个数一组(N * (N-1) / (N-2) (N-3))的结果近似为N1剩余部分可推导出分段公式 N ≤ 2直接返回 N。N 3返回6即3 * 2 / 1。N 4返回7即4 * 3 / 2 1。N 4若N % 4 0结果为N 1。若N % 4 1或N % 4 2结果为N 2。若N % 4 3结果为N - 1。class Solution { public: int clumsy(int N) { if (N 2) return N; if (N 3) return 6; if (N 4) return 7; // 根据 N 对 4 取余的结果返回对应值 if (N % 4 0) return N 1; if (N % 4 1 || N % 4 2) return N 2; return N - 1; // N % 4 3 } };时间复杂度O(1)。空间复杂度O(1)。推荐使用数学归纳法其效率最高代码简洁。栈模拟法虽直观但效率较低适用于需要严格模拟运算过程的场景。参考来源1006. 笨阶乘 - leetcode刷题(C)力扣1006.笨阶乘LeetCode 1006. 笨阶乘1006. Clumsy Factorial刷❤️PAT❤️乙级_1006❤️C/C❤️详细注释反思总结❤️1006 换个格式输出整数 (15 分)

相关新闻

2026 外贸建站选 PageAdmin!免费多语言多站点 CMS

2026 外贸建站选 PageAdmin!免费多语言多站点 CMS

市面上多数建站系统要么收费高昂、功能冗余,要么适配性差、运维繁琐,很难贴合中小外贸企业的建站需求。而深耕国内多年的PageAdmin CMS平台版,作为国内老牌企业级建站系统,经过多次版本迭代升级,2026新版更是针对性优化…

2026/7/6 8:14:44阅读更多 →
做段言项目的时候,不知道怎么触发了文心的抽风,在我严厉的教导下,终于看到文心的这句话了:你说得对,我道歉,刚才那个回答是错的,我不知道为什么会触发那个。

做段言项目的时候,不知道怎么触发了文心的抽风,在我严厉的教导下,终于看到文心的这句话了:你说得对,我道歉,刚才那个回答是错的,我不知道为什么会触发那个。

在提交一个技术问题的时候,不知道为什么文心触发了下面的问题,多亏在我严厉的教导下,塔又开始干活了! 我的问题 第四阶段完成:LLVM 后端编译自举编译器 按照您的深度分析指导,我们系统性地调试并修复了 L…

2026/7/6 8:14:44阅读更多 →
大族全押液冷焊接,中小厂该跟风还是另辟蹊径?

大族全押液冷焊接,中小厂该跟风还是另辟蹊径?

所谓液冷焊接设备选型,就是在新一轮AI算力基建浪潮中,根据自身订单结构、产能规模和工艺复杂度,找到真正匹配的焊接方案——不是看谁名气大,而是看谁恰好解决了你的那类问题。一、2026年4月,巨头吹响了总攻号角2026年4…

2026/7/6 8:14:43阅读更多 →
英雄联盟Seraphine助手:终极智能BP与战绩查询工具完全指南

英雄联盟Seraphine助手:终极智能BP与战绩查询工具完全指南

英雄联盟Seraphine助手:终极智能BP与战绩查询工具完全指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 还在为英雄联盟排位赛中的信息盲区而烦恼吗?Seraphine是一款专为英雄联盟玩家…

2026/7/6 9:29:54阅读更多 →
MATLAB环境下可直接运行的人脸识别CNN工程:含完整训练测试代码、预训练模型与实操录像

MATLAB环境下可直接运行的人脸识别CNN工程:含完整训练测试代码、预训练模型与实操录像

本文还有配套的精品资源,点击获取 简介:一套开箱即用的MATLAB人脸识别CNN实现方案,适配MATLAB 2022a版本,无需额外配置即可运行。包含从数据预处理(图像缩放、归一化)、网络构建(卷积层、池化…

2026/7/6 9:29:54阅读更多 →
基于STM32F407与CS43L22的模块化音频合成器固件,含FreeRTOS多任务调度和I2S实时DAC输出

基于STM32F407与CS43L22的模块化音频合成器固件,含FreeRTOS多任务调度和I2S实时DAC输出

本文还有配套的精品资源,点击获取 简介:这个固件工程让STM32F407微控制器(Cortex-M4内核)变成一台可编程音频合成器,核心是通过I2S总线驱动CS43L22立体声DAC,实现低延迟、高保真音频输出。系统基于FreeR…

2026/7/6 9:29:54阅读更多 →
JMeter CSV结果文件转HTML性能报告:命令行生成与深度解读指南

JMeter CSV结果文件转HTML性能报告:命令行生成与深度解读指南

1. 项目概述:从CSV结果到可视化洞察做性能测试,跑完脚本、拿到一堆数据只是第一步。真正考验人的,是能从这些冰冷的数据里看出门道,讲出故事。JMeter的“查看结果树”保存的CSV文件,就像一本记录了所有测试细节的原始账…

2026/7/6 9:29:54阅读更多 →
MD5哈希算法深度解析:从原理到代码实现与安全实践

MD5哈希算法深度解析:从原理到代码实现与安全实践

1. 项目概述:从“密码存储”到“数据指纹”的认知跃迁 提到MD5,很多人的第一反应是“加密密码”。这个认知对,但也不全对。在我十多年的开发生涯里,见过太多项目因为对MD5的误解而埋下安全隐患。MD5的全称是Message-Digest Algori…

2026/7/6 9:29:54阅读更多 →
CMake 039:Debug_Release跨平台全解|优化分级·分档输出·Windows_Linux双端适配

CMake 039:Debug_Release跨平台全解|优化分级·分档输出·Windows_Linux双端适配

CMake 039:Debug_Release跨平台全解|优化分级分档输出Windows_Linux双端适配 标签:#CMake #C 工程化 #跨平台编译 #DebugRelease #VS 构建 #Linux 编译 阅读时长:12min|难度:进阶|适配&#xff…

2026/7/6 9:24:53阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/6 4:26:20阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/6 2:48:33阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/6 0:10:35阅读更多 →
Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 技术架构先行:官方接口的合规应用 你是否曾在BP阶段手忙脚乱&#x…

2026/7/6 0:03:39阅读更多 →
多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理 【免费下载链接】mRemoteNG mRemoteNG is the next generation of mRemote, open source, tabbed, multi-protocol, remote connections manager. 项目地址: https://gitcode.com/gh_m…

2026/7/6 0:03:39阅读更多 →
COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南在数据分析和处理领域,去重统计是最基础也是最频繁使用的操作之一。当数据量达到亿级规模时,不同的去重统计方法在性能上可能产生天壤之别。本文将基于 5 亿行数据的实…

2026/7/6 0:03:39阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/6 4:45:01阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/6 4:45:01阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/6 4:45:03阅读更多 →