一.      题意(0.04s)

    每一对成熟的兔子可以生一对兔子,兔子在m个月之后成熟,假设兔子都不会死,计算d个月后一共有多少只兔子。

二.      要高精度加法(用string)

三.      公式:ans[m] = ans[m - 1] + ans[m-M]。

    这里M最大值只可能是10,所以开个最大存10个string的数组。把1到N分成数量的M的小组,重复使用数组里面的数据,节省空间。

四.      源代码

    

  1. //
  2. // main.cpp
  3. // sicily-1029
  4. //
  5. // Created by ashley on 14-12-5.
  6. // Copyright (c) 2014年 ashley. All rights reserved.
  7. //
  8.  
  9. #include <iostream>
  10. #include <string>
  11. using namespace std;
  12. string ans[];
  13. string clearZeros(string data)
  14. {
  15. if (data[] == '') {
  16. int key = (int) data.length() - ;
  17. for (int i = ; i < data.length(); i++) {
  18. if (data[i] != '') {
  19. key = i;
  20. break;
  21. }
  22. }
  23. data.erase(, key);
  24. }
  25. if (data == "") {
  26. data = "";
  27. }
  28. return data;
  29. }
  30.  
  31. //对位操作
  32. void countPoint(string &operand1, string &operand2)
  33. {
  34. while (operand1.length() < operand2.length()) {
  35. operand1 = "" + operand1;
  36. }
  37. while (operand1.length() > operand2.length()) {
  38. operand2 = "" + operand2;
  39. }
  40. }
  41.  
  42. string addition(string addent, string adder)
  43. {
  44. //先对位,在加数和被加数前面适当补0,使他们包含相同的位数
  45. countPoint(addent, adder);
  46. //前面再补一个0,确定和的最多位数
  47. addent = "" + addent;
  48. adder = "" + adder;
  49. //从低位开始,对应位相加,结果写进被加数中,如果有进位,直接给被加数前一位加1
  50. for (int i = (int) addent.length() - ; i > ; i--) {
  51. addent[i] = addent[i] + adder[i] - ;
  52. if (addent[i] > '') {
  53. addent[i] = addent[i] - ;
  54. addent[i - ] = addent[i - ] + ;
  55. }
  56. }
  57. return clearZeros(addent);
  58. }
  59.  
  60. int main(int argc, const char * argv[])
  61. {
  62. int month, deadline;
  63. while (cin >> month >> deadline) {
  64. if (month == && deadline == ) {
  65. break;
  66. }
  67. string increment;
  68. increment = "";
  69. ans[] = "";
  70. for (int i = ; i <= month - ; i++) {
  71. ans[i] = addition(ans[i - ], increment);
  72. }
  73. for (int i = month; i <= deadline; i++) {
  74. increment = ans[i % month];
  75. ans[i % month] = addition(ans[(i - ) % month], increment);
  76. }
  77. cout << ans[deadline % month] << endl;
  78. }
  79. return ;
  80. }

sicily-1029 Rabbit的更多相关文章

  1. 拥抱.NET Core,跨平台的轻量级RPC:Rabbit.Rpc

    不久前发布了一篇博文".NET轻量级RPC框架:Rabbit.Rpc",当初只实现了非常简单的功能,也罗列了之后的计划,经过几天的不断努力又为Rabbit.Rpc增加了一大波新特性 ...

  2. hdu----(1849)Rabbit and Grass(简单的尼姆博弈)

    Rabbit and Grass Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  3. 在 Windows 上安装Rabbit MQ 指南

    rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. Ra ...

  4. .NET轻量级RPC框架:Rabbit.Rpc

    最近准备写一个.NET的管理平台应用在公司,由于存在大量的Client => Server,Server => Client的请求需求在加上之前一直接触了解过RpcClient组件的开发, ...

  5. sicily 中缀表达式转后缀表达式

    题目描述 将中缀表达式(infix expression)转换为后缀表达式(postfix expression).假设中缀表达式中的操作数均以单个英文字母表示,且其中只包含左括号'(',右括号‘)’ ...

  6. sicily 1934. 移动小球

    Description 你有一些小球,从左到右依次编号为1,2,3,...,n. 你可以执行两种指令(1或者2).其中, 1 X Y表示把小球X移动到小球Y的左边, 2 X Y表示把小球X移动到小球Y ...

  7. 古典问题rabbit

    /**古典问题: * 有一对兔子,从出生后第三个月起每个月都生一对兔子, * 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死, * 问每个月的兔子总数为多少? * 程序分析:兔子的规律为数列: ...

  8. Error: unable to connect to node rabbit@mail: nodedown

    某天,开启一个应用时,发现连接rabbitmq失败,本来想用rabbitmqctl来查看队列,结果提示“Error: unable to connect to node rabbit@mail: no ...

  9. HDU-4057 Rescue the Rabbit(AC自动机+DP)

    Rescue the Rabbit Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  10. .NET 平台下的插件化开发内核(Rabbit Kernel)-转

    什么是RabbitHub? RabbitHub 是专门针对 .NET 平台所设计.研发的一套相对完整的插件开发框架,它是由一个内核两大框架多个组件及一系列的开发时支持而构成. RabbitHub 架构 ...

随机推荐

  1. php7 不向后的兼容的变更

    php7 不向后的兼容的变更 在php7中,很多致命错误以及可恢复的致命错误,都被转换为异常来处理了. 这些异常继承自Error类,此类实现了Throwable接口(所有异常都实现了这个基础接口) 这 ...

  2. C语言复杂的函数指针声明

    复习C语言ING,发现复杂的函数指针声明看不懂,百度半天终于略知一二. 讲的比较详细的一篇blog: http://blog.csdn.net/megaboy/article/details/4827 ...

  3. Java判断字符串是否为空的三种方法

    方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低.1: if(s == null || s.equals("")); 方法二: 比较字符串长度, 效率高, 是我知道的最 ...

  4. asp.net core + angular2

    asp.net core + angular2 的环境配置 国内整个对 asp.net core  和 angular2这些新出来的关注度不是太好.跟国外比很大差距. 我在试着去做这个整合的时候也碰到 ...

  5. 使用Ramdisk 加速 Visualstudio 编译调试

    一般来说ASP.NET在执行的时候,会先动态编译在目录 C:\Windows\Microsoft.NET\Framework64\版本\Temporary ASP.NET Files 由于每次修改程序 ...

  6. poj2656---求一列数中最大数的序数而且在前面输入的更优先

    #include<stdio.h> #include<stdlib.h> int main() { int n,i; while(scanf("%d",&a ...

  7. mongoose的populate的使用方法;

    LotteryReceiveRecord.find({"lottery":req.params.id}).populate("user lottery").ex ...

  8. 【转】Loss Function View

    感谢原文作者!原文地址:http://eletva.com/tower/?p=186 一.Loss Function 什么是Loss Function?wiki上有一句解释我觉得很到位,引用一下:Th ...

  9. Problem 2128 最长子串(kmp+strstr好题经典)

     Problem 2128 最长子串 Accept: 134    Submit: 523Time Limit: 3000 mSec    Memory Limit : 65536 KB  Probl ...

  10. WebStorm 7.0 注冊码

    经測试 WebStorm 6 7均能够使用例如以下注冊码,简直就是神key啊! WebStorm 6.0 7.0 注冊码 User Name: EMBRACE   License Key: ===== ...