一种细菌的繁殖速度是每天成倍增长。例如:第一天有10个,第二天就变成20个,第三天变成40个,第四天变成80个,……。现在给出第一天的日期和细菌数目,要你写程序求出到某一天的时候,细菌的数目。
#include<iostream>
using namespace std;
int main()
{ int n;
int a[100]; //根据输出格式,用数组a存储需要输出的值
cin >> n; //次数设为n
int M[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
for (int i = 1; i <=n; i++)
{ int A, B,k,C,D; //初始值细菌设为k
cin >>A>> B>> k>>C>>D;
int t=0; //这里需要求出细菌繁殖经历的时间记做 t
if (A!=C) //不在同月时
{int benyue = M[A] - B;//当月剩余天数
for (int j = A+1; j < C ; j++)
{t=t+M[j];} //从A到C月间隔天数
t = t + D+ benyue;}
else //当在同一月时
{t= D- B;}
for (int j = 0;j <t; j++)
{k= k * 2;} //每一天翻一番
a[i]=k;
}
for(int i=1;i<=n;i++)
cout<<a[i]<<endl; //输出
}