5.2 细菌繁殖
来源:互联网 发布:js 异常处理 编辑:程序博客网 时间:2024/06/08 11:48
问题描述
一种细菌的繁殖速度是每天成倍增长。例如:第一天有
10个,第二天就变成
20个,
第三天变成
40个,第四天变成
80个,……。现在给出第一天的日期和细菌数目,要你
写程序求出到某一天的时候,细菌的数目。
输入数据
第一行有一个整数
n,表示测试数据的数目。其后
n行每行有
5个整数,整数之间
用一个空格隔开。第一个数表示第一天的月份,第二个数表示第一天的日期,第三个数
表示第一天细菌的数目,第四个数表示要求的那一天的月份,第五个数表示要求的那一
天的日期。已知第一天和要求的一天在同一年并且该年不是闰年,要求的一天一定在第
一天之后。数据保证要求的一天的细菌数目在整数范围内。
输出要求
对于每一组测试数据,输出一行,该行包含一个整数,为要求的一天的细菌数。
输入样例
2
1 1 1 1 2
2 28 10 3 2
输出样例
2
40
解题思路
这题实际上是求给定的两天之间间隔的天数
n,第一天的细菌数乘以
2的
n次方就是题
目的答案。每个月的天数因为不很规则,如果在程序中用规则描述会比较麻烦,所以可以使
用一个数组将每个月的天数存起来。整个计算过程可以描述如下:
读入测试样例数
n;
做
n次:1. 读入两个日期及第一天的细菌数;
2.将两个日期转换为当年的第几天;
3.得到两个天数的差,即它们中间间隔的天数
m;
4.用第一天的细菌数乘以
2的
m次方等到
x;
5.输出
x;
代码如下:
/***Declaration:The author of <<Accelerated C++>> has wrote in the end of that book: As you look for reading materimal, keep in mind that books on the shelf do not make you a better programmer. Ultimately, the only way to improve your programming is to write programs.>这些程序来自一些ACM书籍,作者只为提高编程能力,实现书中例题或练习。如有侵权,请联系作者,作者将立即删除。**联系邮箱:mingxinglai#gmail.com**/#include <stdio.h>int main(int argc, char* argv[]){int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int n;scanf("%d", &n);for( int i = 0; i < n; i++){int month_1, day_1, month_2, day_2, num;scanf("%d%d%d%d%d", &month_1, &day_1, &num, &month_2, &day_2);int sum = 0;for( int k = month_1; k < month_2; k++)sum += days[ k - 1 ];sum -= day_1;sum += day_2;int nNum = num;for(int k = 0; k < sum; k++)nNum *= 2;printf("%d\n", nNum);}return 0;}
示例2:(较上面的代码更为简洁明了)
#include <stdio.h>int month[]= {0,31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};int main(int argc, char* argv[]){int times;scanf("%d", ×);int mon1, date1, mon2, date2, num;while( times-- ){scanf("%d%d%d%d%d", &mon1, &date1, &num, &mon2, &date2);int days = date2 - date1;for( int i = mon1; i < mon2; i++)days += month[i];long nNum = num;for( int j = 0; j < days; j++)num *= 2;printf("%d\n", num);}return 0;}
- 5.2 细菌繁殖
- 5.2poj2712细菌繁殖
- 5.2例题--细菌繁殖--2712
- 细菌繁殖
- 细菌繁殖
- 细菌繁殖
- poj2712细菌繁殖
- nxojacm:细菌繁殖
- 细菌的繁殖
- POJ 2712:细菌繁殖
- POJ2712细菌繁殖
- Raising Bacteria 细菌繁殖
- ACM-细菌繁殖
- 矩阵 细菌繁殖
- POJ 2712 细菌繁殖
- 百练 2712 细菌繁殖
- 华为面试题细菌繁殖
- OpenJudge - 2712 细菌繁殖题解
- 快速配置BIND【DNS】
- Hibernate中的映射
- C程序设计(谭浩强)--学习笔记
- 最强偏振3D播放器TriDef 3D安装+全格式播放配置
- ubuntu 输入法
- 5.2 细菌繁殖
- IT领域:冷暖自知
- LGame的执行过程测试
- svn地址
- 液晶显示器偏光膜的基本原理
- 黑马程序员_java学习日记_Java基础小知识学习整理
- Observer模式Linux下的C++实现
- 2007年浙江大学计算机及软件工程研究生机试真题
- POJ 1284 Primitive Roots (原根,欧拉函数)