#include "stdafx.h" /* 描述 菲波那切数列可以用下列的式子表示: f(1)=1 f(2)=1 f(n)=f(n-1)+f(n-2) (n>=3) 现在我们根据这个规则定义另一种数列 命名为"辛波那切数列", 它是这样定义的: s(x)=0 (x<0) s(x)=1 (0<=x<1) s(x)=s(x-1)+s(x-3.14) (x>=1) 现在需要计算出s(x) MOD 1000000007的值。 输入 第一行有一个正整数T表示有T组测试数据。 接下来T行,每行包含一个数x。 其中 T<=10000, -1000.0<=x<=1000.0 输出 有T行,依次输出每组数据的结果。 样例输入 3 -1 0.667 3.15 样例输出 0 1 2 */ long Sibonacci( float x //-1000.0<=x<=1000.0 ){ if (x < 0.0f){ return 0L; } else if (x <= 1.0f) { //for quick because S(x=1) also =1 return 1L; } //original method //return Sibonacci(x - 1.0f) + Sibonacci(x - 3.14f); //improve method 1 for reducing momentary memory-payload-peak-value long r; //根据题意s(x)=0 (x<0),如果x是整数,则计算f(x)=f(x-1)所以分支的返回结果=0(所以和=0),因为x-1到最后 x必然=0 //根据题意s(x)=1 (0<=x<1),如果x有小数,则计算分支 f(x)=f(x-1) 的结果=1,因为x-1到最后 x必然只剩小数 //一个S(x)=S(x-1)+S(x-3.14),S(x-1)又可以看做=S(x-1-1)+S(x-1-3.14) //所以可以把 x 看作是 x-(A或B)-(A或B)的排列,只要排列中多个AB的和小于x,同时大于x-1,其它无意义(不是结果为0无意义,就是未细分到最后) //说到最后,就是统计计算有多少AB的排列组合P(AB)(未定义数量),只要求这些AB之和小于x,并且与X之差小于1 //有点类似背包,尽可能填满一个空间,不可再装,使剩余空间并且小于1个可装填单位之内,便是一种填补方法 //这里A和B = 1 和 3.14,空间=X小于=1000 //具体到此题,是说所有任何"1"和"3.14"的排列的数量,要求排列中组成的数之和要在 999< sum <=1000 之间 //对于求1,3.14排列,可以先求组合,一个"3.14"量相当于三个"1"的量 //有了正确的组合配比(就是sum在范围内),然后拿现成公式求排列数,P //逐个递减 "3.14",递增"1", //到最后一定有一个精确的结果, //限于时间宝贵,浪费生命,又不是专门研究算法的数学家,就不给出实现代码了,算法复杂度应该是 O(n) return r; } int _tmain(int argc, _TCHAR* argv[]) { float x = 1000.0f; const float MOD = 1000000007.0f; long r = Sibonacci(x); printf("%ld", &r); return 0; }

有道难题2010网易编程挑战赛 20100526练习题C Sibonacci相关推荐

  1. 有道难题——2010网易编程挑战赛

    只能说:果然ACM不是我的强项,又一次铩羽而归,不过这也证明了一个道理,没有付出努力就一定不会有收获.所以,下定决心利用暑假时候好好学习ACM,等待明年. 首先是有道难题的主页: http://www ...

  2. 另类的异或_有道难题_2010网易编程挑战赛

    题目: 描述: 对于普通的异或,其实是二进制的无进位的加法.这里我们定义一种另类的异或A op B, op是一个仅由^组成的字符串,如果op中包含n个^,那么A op B表示A和B之间进行n+1进制的 ...

  3. 有道难题2010有道谜题标准答案

    有道难题2010网易编程挑战赛:http://www.youdao.com/nanti/index.html 欢迎报名参加由网易公司主办的"有道难题2010网易编程挑战赛".本次大 ...

  4. 网易有道胡琛:将“有道难题”做成中国编程爱好者的节日

    网易,一个对中国互联网影响至深的门户网站.搜索,一项给全世界计算机用户带来极好帮助的技术.我们无法想象,如果没有搜索,将会给我们的生活减少多少便利.网易有道,这个特别的名字,如今也逐渐为人们熟识和使用 ...

  5. 有道难题2010练习赛2;

    描述 一个正整数,如果它能被7整除,或者它的十进制表示法中某个位数上的数字为7,则称其为与7相关的数.现求所有小于等于n(n<100)的与7无关的正整数的平方和. 输入 输入为一行,正整数n,( ...

  6. quot;有道难题2009quot;复赛题目

    突然发现,有道难题也有编程比赛,先看了一下去年的题目,自己写了一个方法,再与官方给出的方法相比较,下面我对我的方法和官方方法作一下比较,找出不足,进步进步.首先列出题目: Problem Statem ...

  7. python 内推_网易有道2017内推编程题 洗牌(python)

    本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下 ''' [编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程 ...

  8. 有道python网课怎么样-网易有道2017内推编程题 洗牌(python)

    本文实例为大家分享了网易有道2017内推编程题:洗牌,供大家参考,具体内容如下 ''' [编程题] 洗牌 时间限制:1秒 空间限制:32768K 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程 ...

  9. 网易有道2017内推编程题

    网易有道2017内推编程题 两道题,都只要找到了规律就比较好些,然后就是一些细节处理! 题目一 洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程. 现在需要洗2n张牌,从上到下依次是第1张,第2 ...

最新文章

  1. Osmocom-BB 相关资源、知识分享
  2. iOS之实现图片的压缩、解压缩、模糊、置灰、马赛克、黑白化、调色等处理
  3. 三维球体换算到二维_AutoCAD三维入门,这些硬核干货要知道,看不懂建议备份收藏...
  4. asp.net表单提交方法GET\POST
  5. mysql恢复 报错_Mysql 数据恢复报错
  6. java取得泛型,Java取得泛型类型
  7. JavaScript:class类的实现方式及特点
  8. [转载] c++的vector赋值方法汇总
  9. 北京市城六区内严禁新建扩建数据中心
  10. ceph mds的客户端告警记录
  11. ipad2 白苹果惊魂
  12. matlab中diamond,my-DIAMOND 经典的莫泰识别分析软件 ,在matlab平台下 238万源代码下载- www.pudn.com...
  13. 安卓玩机搞机之卡刷包 线刷包与刷机中一些故障解决与问题分析
  14. 电容器单位及电容器单位换算
  15. hdmi接口有什么用_显示器有哪些接口?DP、HDMI、VGA、DVI有什么区别?
  16. Android 炫酷自定义 View - 剑气加载
  17. 华为消费者云的ServiceComb 微服务之旅
  18. 虚拟机屏幕太小 如何调整?
  19. Windows 10 IDM 下载play.kth.se上面的网课视频
  20. 3_5.网络文件系统

热门文章

  1. audiotrack java_Android音视频之AudioTrack播放音频(二)
  2. 10分钟搭建树莓派NAS私有云和KODI影音播放系统 (3)---正式搭建
  3. OSG 基于场景图添加模型
  4. 人类首次登月内幕:九死一生险些失败(图)
  5. 在React中使用React Router v6
  6. 【恒指早盘分析】9.2恒指早盘分析及最新资讯
  7. 陶瓷基覆铜板性能要求与标准
  8. 文件服务器磁盘配额管理,Windows2008 (FSRM)文件服务器资源管理器网站文件夹磁盘配额管理...
  9. 微型计算机原理与接口技术孙力娟课后答案,微型计算机原理与接口技术s答案...
  10. 苹果手机如何使用IP直连?