HDU5620 KK's Steel(C语言版)【废除!!!】
本文废除,参见以下参考链接:
参考链接: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语言版)【废除!!!】相关推荐
- HDU5620 KK's Steel【菲波拉契数列+水题】
KK's Steel Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total ...
- c语言 静态链表插入排序,数据结构C语言版 表插入排序
西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...
- 资料分享:送你一本《数据结构(C语言版)》电子书!
要想写出可复用.可扩展.易维护.灵活性好的代码,「数据结构」这一关必须要过啊! 在数据结构与算法的众多教材中,奉为经典的当属清华大学严蔚敏老师的著作.很多学校也选择这本书作为考研指定教材. 正在学习数 ...
- 资料分享:送你一本《数据结构(C#语言版)》电子书!
对于信息类专业的学生而言,数据结构与算法是一门必修的课程.只有学好这门课程,熟练掌握线性表.栈.队列.树.图等基本结构,以及在这些结构上的各种算法,才能利用计算机去解决实际问题. 如何学好这门课程呢, ...
- 数据结构(C语言版) 第 八 章 排序 知识梳理 + 习题详解
目录 一.归并排序 二.交换排序 1.快速排序 2.冒泡排序 三.插入排序 1.直接插入排序(基于顺序查找) 2.折半插入排序(基于折半查找) 3.希尔排序(基于逐趟缩小增量) 四.选择排序 0.直接 ...
- 数据结构(C语言版) 第 六 章 图 知识梳理 + 习题详解
目录 一. 图的基本定义和术语 一.图的基本概念 1.度 2.连通 (1)连通图 (2)强连通/强连通图 3.回路 4.完全图 二.图的三种存储结构 1.邻接矩阵表示法 2.邻接表(链式)表示法 3. ...
- 数据结构(C语言版) 第 三 章 栈与队列 知识梳理 + 作业习题详解
目录 一.栈 0.栈的基本概念 1.栈的实现 2.栈与递归 3.Hanoi塔问题 二.队列 0.队列的基本概念 1.队列的实现 2.循环队列 2.1循环队列的相关条件和公式: 3.链队列 4.链队列完 ...
- 数据结构(C语言版) 第二章 线性表 知识梳理+作业习题详解
目录 一.线性表顺序存储结构(顺序表) 0.线性表的基本概念 1.样例引入:多项式相加 二.线性表链式存储结构(链表) 0.链表的基本概念 1.前插法代码实例 2.链表尾插法完整代码附带各种操作 三. ...
- 数据结构c语言函数大全,数据结构习题库(c语言版).doc
数据结构习题库(c语言版) 第一章 绪 论 一.基本内容 数据.数据元素.数据对象.数据结构.存储结构和数据类型等概念术语的确定含义.抽象数据类型的定义.表示和实现方法.描述算法的类C语言.算法设计的 ...
最新文章
- i.MX 系列CPU HAB漏洞SecureBoot漏洞
- python与 积分
- why in GM0 the extAddTo Controller is not loaded
- 系统错误_Win10系统提示0x80004005错误的解决方法
- 根因分析初探:一种报警聚类算法在业务系统的落地实施 1
- python双素数_python双素数_用Python打印100以下的所有双素数对
- NB-IOT(6)---NB-IoT物联网行业解决方案
- [java] JVM监控与调优
- Faker 快速构造测试数据
- spring security原理图及其解释
- 新浪微博模拟登陆+数据抓取(java实现)
- 拓端tecdat|R语言用rle,svm和rpart决策树进行时间序列预测
- Atitit atiMail atiDns新特性 v2 q39
- 将mysql驱动包添加到项目依赖
- 获取TrueType字体信息
- DSB matlab仿真
- [HDF5]如何使用CMake一起编译自己的代码和HDF5库
- Git 无法切换分支,报错git did not exit cleanly
- C语言库函数— qsort () 详解
- 医疗器械三类申请需要提交什么材料?