博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU5620 KK's Steel(C++语言版)
阅读量:6544 次
发布时间:2019-06-24

本文共 807 字,大约阅读时间需要 2 分钟。

问题链接:。

问题描述参见上文。

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

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

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

这个C++版的采用顺序查找,逻辑就要简单一些。参见:。

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

程序说明(略)。

AC的程序如下:

/* HDU5620 KK's Steel */#include 
using namespace std;const int MAXN = 100;unsigned long long fsum[MAXN];/* 递推法:计算斐波拉契数列的第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
> t; while(t--) { cin >> n; for(int i=1; i



转载于:https://www.cnblogs.com/tigerisland/p/7564865.html

你可能感兴趣的文章
Intellij IDEA 构建Spring Web项目 — 用户登录功能
查看>>
使用makecontext实现用户线程【转】
查看>>
PCIE BAR空间
查看>>
如何用数学课件制作工具画角平分线
查看>>
VS2015 中统计整个项目的代码行数
查看>>
UWP控件与DataBind
查看>>
bash: php: command not found
查看>>
XVIII Open Cup named after E.V. Pankratiev. Eastern Grand Prix
查看>>
《高性能mysql》到手
查看>>
(转)关于如何学好游戏3D引擎编程的一些经验
查看>>
使用Kotlin为你的APP自定义一个统一的标题栏
查看>>
EF各版本增删查改及执行Sql语句
查看>>
拓扑排序
查看>>
jQGrid API
查看>>
Bzoj1758: [Wc2010]重建计划
查看>>
redis集群部署及踩过的坑
查看>>
使用pip命令报You are using pip version 9.0.3, however version 18.0 is available pip版本过期.解决方案...
查看>>
(转)LINQ之路
查看>>
vuex视频教程
查看>>
Java 线程 — ThreadLocal
查看>>