本文废除,参见以下参考链接:

参考链接HDU5620 KK's Steel【菲波拉契数列】


问题链接:HDU5620 KK's Steel。

问题描述:参见上文。

问题分析:刚读到题,有点难解,没有头绪。

看了暗示才明白点,有点像菲波拉契数列,不过每一项求的是数列到该项之和。另外略有不同的是,第1项是1,第2项是2。也许是为了三个钢管围起来不能成为三角形的原因。

既然知道以上这些,那就先打表备查,这是为了节省计算时间,尽管有时候是多余的,但是多数程序都需要打表,那就打表吧。

查找的时候,可以用顺序查找的,只是略费点时间。这里采用二分查找,逻辑就稍微有点麻烦了,因为这不是找相等的数,是找一个小于或等于的数,所以要注意在二分查找之后加以调整。参见:HDU5620 KK's Steel(C++语言版)。

需要说明的一点是,菲波拉契序列的各项值增长是极快的,其和的增长就更快了,不用95项就达到了所需要的值的范围。这个项数计算,作为定义数组大小的依据,不能随便来的,需要事先做点功课的。

程序说明:(略)。

AC的C语言程序如下:

#include <stdio.h>#define MAXN 95
unsigned long long fsum[MAXN+1];/* 递推法:计算斐波拉契数列的第1到n项之和 */
/* 这里略有不同,第2项是2,其他基本相同 */
void fibsum(unsigned long long fsum[], int n)
{fsum[0] = 0;fsum[1] = 1;fsum[2] = 3;if(n <= 2)return;unsigned long long f1 = 1, f2 = 2, temp;int i;for(i=3; i<=n; i++) {temp = f1 + f2;f1 = f2;f2 = temp;fsum[i] = fsum[i-1] + temp;}
}int main(void)
{// 计算斐波拉契数列的第1到n项之和,打表fibsum(fsum, MAXN);int t, start, mid, end;unsigned long long n;scanf("%d",&t);while(t--) {scanf("%llu",&n);// 二分查找start = 0;end = MAXN;for(;;) {if(start > end)break;mid = (start + end) / 2;if(fsum[mid] < n)start = mid + 1;else if(fsum[mid] > n)end = mid - 1;else if(fsum[mid] == n)break;}if(n < fsum[mid])mid--;printf("%llu\n", mid);}return 0;
}




HDU5620 KK's Steel(C语言版)【废除!!!】相关推荐

  1. HDU5620 KK's Steel【菲波拉契数列+水题】

    KK's Steel Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  2. c语言 静态链表插入排序,数据结构C语言版 表插入排序

    西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...

  3. 资料分享:送你一本《数据结构(C语言版)》电子书!

    要想写出可复用.可扩展.易维护.灵活性好的代码,「数据结构」这一关必须要过啊! 在数据结构与算法的众多教材中,奉为经典的当属清华大学严蔚敏老师的著作.很多学校也选择这本书作为考研指定教材. 正在学习数 ...

  4. 资料分享:送你一本《数据结构(C#语言版)》电子书!

    对于信息类专业的学生而言,数据结构与算法是一门必修的课程.只有学好这门课程,熟练掌握线性表.栈.队列.树.图等基本结构,以及在这些结构上的各种算法,才能利用计算机去解决实际问题. 如何学好这门课程呢, ...

  5. 数据结构(C语言版) 第 八 章 排序 知识梳理 + 习题详解

    目录 一.归并排序 二.交换排序 1.快速排序 2.冒泡排序 三.插入排序 1.直接插入排序(基于顺序查找) 2.折半插入排序(基于折半查找) 3.希尔排序(基于逐趟缩小增量) 四.选择排序 0.直接 ...

  6. 数据结构(C语言版) 第 六 章 图 知识梳理 + 习题详解

    目录 一. 图的基本定义和术语 一.图的基本概念 1.度 2.连通 (1)连通图 (2)强连通/强连通图 3.回路 4.完全图 二.图的三种存储结构 1.邻接矩阵表示法 2.邻接表(链式)表示法 3. ...

  7. 数据结构(C语言版) 第 三 章 栈与队列 知识梳理 + 作业习题详解

    目录 一.栈 0.栈的基本概念 1.栈的实现 2.栈与递归 3.Hanoi塔问题 二.队列 0.队列的基本概念 1.队列的实现 2.循环队列 2.1循环队列的相关条件和公式: 3.链队列 4.链队列完 ...

  8. 数据结构(C语言版) 第二章 线性表 知识梳理+作业习题详解

    目录 一.线性表顺序存储结构(顺序表) 0.线性表的基本概念 1.样例引入:多项式相加 二.线性表链式存储结构(链表) 0.链表的基本概念 1.前插法代码实例 2.链表尾插法完整代码附带各种操作 三. ...

  9. 数据结构c语言函数大全,数据结构习题库(c语言版).doc

    数据结构习题库(c语言版) 第一章 绪 论 一.基本内容 数据.数据元素.数据对象.数据结构.存储结构和数据类型等概念术语的确定含义.抽象数据类型的定义.表示和实现方法.描述算法的类C语言.算法设计的 ...

最新文章

  1. i.MX 系列CPU HAB漏洞SecureBoot漏洞
  2. python与 积分
  3. why in GM0 the extAddTo Controller is not loaded
  4. 系统错误_Win10系统提示0x80004005错误的解决方法
  5. 根因分析初探:一种报警聚类算法在业务系统的落地实施 1
  6. python双素数_python双素数_用Python打印100以下的所有双素数对
  7. NB-IOT(6)---NB-IoT物联网行业解决方案
  8. [java] JVM监控与调优
  9. Faker 快速构造测试数据
  10. spring security原理图及其解释
  11. 新浪微博模拟登陆+数据抓取(java实现)
  12. 拓端tecdat|R语言用rle,svm和rpart决策树进行时间序列预测
  13. Atitit  atiMail atiDns新特性 v2  q39
  14. 将mysql驱动包添加到项目依赖
  15. 获取TrueType字体信息
  16. DSB matlab仿真
  17. [HDF5]如何使用CMake一起编译自己的代码和HDF5库
  18. Git 无法切换分支,报错git did not exit cleanly
  19. C语言库函数— qsort () 详解
  20. 医疗器械三类申请需要提交什么材料?

热门文章

  1. Unity5.x 依赖关系打包 AssetBundle 研究
  2. 走在网页游戏开发的路上——页游资源管理
  3. matlab兔子繁殖问题,斐波那契数列在《疯狂动物城》兔子繁衍中的应用
  4. Mysql 引优化分析
  5. linux salt命令 -e,Linux记录-salt命令
  6. 的ppt_PPT模板中国风PPT模板
  7. java库存审核表_JAVA库存案例
  8. String, StringBuffer,StringBuilder
  9. 春招你必须掌握的Python经典面试题(附赠简历模版)
  10. 大数据系列1-规划安排