- 5
- 0
- 约1.37千字
- 约 13页
- 2018-06-24 发布于江苏
- 举报
综合实践·信息术编程之一题多解
By 七(8)班 陈 硕 By 七(8)班 陈 硕 综合实践·信息技术编程之一题多解 积木块数问题 解题报告 积木块数 【问题描述】 安安、庆庆和可可用一些相同正方体积木搭起如图所示积木塔,他们想知道搭建这样的积木塔一共用了多少块积木。给定积木塔的层数,请你帮助他们计算该积木塔共有多少块积木。 【输入描述】 一个整数N,表示积木塔的层数。 【输出描述】 一个整数X,表示整个积木塔所用的积木数。 【输入样例】 5 【输出样例】 35 【数据范围】 1=N=2000 对于这一道题 我想说:这是多么 的题目啊! 这完全是CCF典型的“第一题”。 (PS:呵呵。。。。。。) 此问题的核心就是: (“所谓的”)方法一: 看图形,可得以下规律: 我们有了一个“惊人”的发现: 第i行比第i-1行多i个方块。这样一来,我们就可以简单地解决这个问题了。 算法: 根据上一行的块数加这一行的行数,然后逐层累加。 时间效率:O(n)级别 贴上程序: #includeiostream #includecstdio #includecstdlib using namespace std; long long n,i,s,ans; int main() { cinn; for (i=1; i=n; i++) { s+=i;ans+=s; } coutans; system(pause); return 0; } 方法二: 对方法一的另一种思考: 方法一中每一层的块数通过上一层求得的,但是,通过观察,稍加思考,我们就可以发现: 每一行的层数的变化是等差的,那么我们可以通过等差数列的求和公式求得每一层的块数。 时间效率:O(n)级别 再次贴程序: #includeiostream #includecstdio #includecstdlib using namespace std; long long n,i,s,ans; int main() { cinn; for (i=1; i=n; i++) { s=(1+i)*i/2; ans+=s; } coutans; system(pause); return 0; } 方法三: 同样的是对方法一的另一种思考: 通过上一层求出本层,这显而易见是一种递推的过程。 所以我们可以通过递推求解。 时间效率:O(n)级别 最后一次贴上代码: #includeiostream #includecstdio #includecstdlib using namespace std; long long n,i,f[100000000],ans; int main() { cinn; for (i=1; i=n; i++) f[i]=f[i-1]+i; for (i=1; i=n; i++) ans+=f[i]; coutans; system(pause); return 0; } * * … 15 10 6 3 1 块数 … 5 4 3 2 1 层数 这就是我对这道题的理解 欢迎大家来补充自己的理解。
您可能关注的文档
- 第五讲 物相定量分析9.ppt
- 第五讲透镜与其应用.doc
- 第五课 变化音(续)、切分音与五线谱上的音符休止符1.doc
- 第五课 角色的服从与僭越1.doc
- 第八届高思杯(二级) 综合解答与评析.PDF
- 第八版《妇产科学1.ppt
- 第八讲 多功数字钟电路设计.ppt
- 第八讲大学生常见的心理障碍1.ppt
- 第八轮国家苦荞种(南方组)区域试验总结.doc
- 第六单元综合检测满分分.doc
- 2023年度十大热点人物的素材解读与运用-2024年高考语文作文热点素材积累运用与(全国通用).pdf
- 格力室外机中央空调价格表.pdf
- 2026上半年贵州事业单位联考贵州省交通运输厅招聘84人备考题库完整答案详解.docx
- 2026上半年贵州事业单位联考贵州传媒职业学院招聘12人备考题库附参考答案详解(达标题).docx
- 2026上半年贵州事业单位联考贵州省住房和城乡建设厅招聘16人备考题库含答案详解(培优).docx
- 2026上半年贵州事业单位联考玉屏侗族自治县招聘41人备考题库及答案详解(夺冠系列).docx
- 通信原理实验2数字频带传输系统实验.pdf
- 2026上半年贵州事业单位联考贵州医科大学第二附属医院招聘22人备考题库含答案详解(能力提升).docx
- 2026上海复旦大学计算力学与人工智能交叉研究院(筹)招聘专任研究员2人备考题库完整答案详解.docx
- 2026上半年贵州事业单位联考贵州民族大学招聘52人备考题库附参考答案详解(研优卷).docx
原创力文档

文档评论(0)