问题 D: HH实习

时间限制: 1 Sec  内存限制: 128 MB

提交: 53  解决: 37

[提交][状态][讨论版]

题目描述

这学期到了十五周了,HH突然要去实训中心实习了,想到要拿着钳子,锯子什么的,头就有点大了,因为它挺好玩的,但是,也是很累的,看着学弟坐在机房悠闲地敲着代码,HH学长决定要让他们好好忙忙,这道题就是为了你们而出的,学弟们,加油!问题很简单,只是需要动手就够了,要求是,给你n米长的钢筋,钢筋大家都知道吧?就是一根钢条,钢条大家都知道吧?不知道的回家问麻麻,目的很简单,让你自己动手把这一根很长的钢筋切成M段,保证他们中的任意三段都不能构成三角形,听起来会感觉乱乱的,其实我要的答案很简单,就是你能把这根钢筋截成多少条,条数要最多,还有就是长度不能少于1米。简单吧,大家抓紧时间AC吧。

输入

第一行输入一个T,接下来T行,每行有一个数N(4<=N<=1000000);

输出

输出占一行,对应每个N输出最多的条数M

样例输入

2

7

144

样例输出

4

10

真想不到,竟然是斐波那契数列,因为不能组成三角形,并且要边数最多,那么第三边就要大于等于两边之和,大于吧又太浪费材料,那就只能等于了,等于的话,又有那麽多的边,这就跟斐波那契数差不多了

#include<stdio.h>
#include<string.h>
int f[50];
void fab()
{
f[1]=f[2]=1;
for(int i=3;i<50;i++)
{
f[i]=f[i-1]+f[i-2];
}
}
int main()
{
int d;
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d",&d);
fab();
int i;
for(i=0;i<50;i++)
{
if(d<f[i])
break;
else d-=f[i];
}
printf("%d\n",i-1);
}
return 0;
}

最新文章

  1. 让你从零开始学会写爬虫的5个教程(Python)
  2. js+html5双人五子棋(源码下载)
  3. Android接入支付宝和银联
  4. DataGridView导出到Excel的三个方法
  5. Gocd持续部署利器
  6. 读书笔记——OpenGL超级宝典
  7. JPush (极光推送) For Xamarin.Android
  8. 算法训练 区间k大数查询
  9. excel 组及分级显示制作教程
  10. webshell + xss 猥琐刷某投票
  11. ol3简介
  12. Nginx源码研究七:nginx的location指令分析
  13. ORACLE函数详解【weber出品】
  14. C#实现DirectShow技术开发准备
  15. _trigger
  16. windoows ftp的自动上传bat
  17. Springboot 之 多配置文件
  18. EXCEL中去掉撇号的操作方法
  19. P1821 [USACO07FEB]银牛派对Silver Cow Party
  20. VMware Workstation 14 黑屏的一个解决办法

热门文章

  1. JavaScript——BOM(浏览器对象模型),时间间隔和暂停
  2. 再续iOS开发中的这些权限
  3. 【BZOJ 2152】 聪聪可可
  4. linux下通用Makefile写法
  5. 关于div中图片水平垂直居中的问题
  6. Cookie是存储在客户端上的一小段数据
  7. windows phone LongListSelector加载下一页
  8. pgpool中的配置参数的定义
  9. 「JavaSE 重新出发」05.02 泛型数组列表、包装类
  10. mount --bind