博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sicily-1029 Rabbit
阅读量:4972 次
发布时间:2019-06-12

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

一.      题意(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 
10 #include
11 using namespace std;12 string ans[10];13 string clearZeros(string data)14 {15 if (data[0] == '0') {16 int key = (int) data.length() - 1;17 for (int i = 0; i < data.length(); i++) {18 if (data[i] != '0') {19 key = i;20 break;21 }22 }23 data.erase(0, key);24 }25 if (data == "") {26 data = "0";27 }28 return data;29 }30 31 //对位操作32 void countPoint(string &operand1, string &operand2)33 {34 while (operand1.length() < operand2.length()) {35 operand1 = "0" + operand1;36 }37 while (operand1.length() > operand2.length()) {38 operand2 = "0" + operand2;39 }40 }41 42 string addition(string addent, string adder)43 {44 //先对位,在加数和被加数前面适当补0,使他们包含相同的位数45 countPoint(addent, adder);46 //前面再补一个0,确定和的最多位数47 addent = "0" + addent;48 adder = "0" + adder;49 //从低位开始,对应位相加,结果写进被加数中,如果有进位,直接给被加数前一位加150 for (int i = (int) addent.length() - 1; i > 0; i--) {51 addent[i] = addent[i] + adder[i] - 48;52 if (addent[i] > '9') {53 addent[i] = addent[i] - 10;54 addent[i - 1] = addent[i - 1] + 1;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 == 0 && deadline == 0) {65 break;66 }67 string increment;68 increment = "1";69 ans[0] = "1";70 for (int i = 1; i <= month - 1; i++) {71 ans[i] = addition(ans[i - 1], increment);72 }73 for (int i = month; i <= deadline; i++) {74 increment = ans[i % month];75 ans[i % month] = addition(ans[(i - 1) % month], increment);76 }77 cout << ans[deadline % month] << endl;78 }79 return 0;80 }

 

转载于:https://www.cnblogs.com/ashley-/p/4151747.html

你可能感兴趣的文章
Java开发环境之Tomcat
查看>>
均值滤波去除图像噪声的matlab程序
查看>>
Matlab中size、numel、length、fix函数的使用
查看>>
Linux系统下实现远程连接MySQL数据库的方法教程
查看>>
磁盘分区和挂载
查看>>
文件修改
查看>>
软退回和硬退回的区别和联系
查看>>
关于异常处理
查看>>
OC 调用JS 代码 处理HTML5 实战
查看>>
LNMP
查看>>
C++读取系统当前时间 分类: C/C++ 2015...
查看>>
实验五
查看>>
Windows启动及停止服务
查看>>
Centos 6.5下mysql 8.0.11的rpm包的安装方式
查看>>
201521123037 《Java程序设计》第10周学习总结
查看>>
小程序的基本原生js使用
查看>>
获取任意元素距离页面顶部的距离 楼梯效果
查看>>
13暑假集训6 总结
查看>>
NGS基础 - 高通量测序原理
查看>>
屏障和屏障属性
查看>>