58编程题-打蚊子
#include <iostream>
#include <cstring>
#include <stdexcept>
using namespace std;
double avgTime(int N)
{
if(N<0) throw logic_error("error: illegal parameter N(<0) for double avgTime(int N);");
if(N<=1) return 20*N;//第一次打肯定打死一只蚊子,假设打第一次蚊子也需要耗时20ms,下同
double E[N];//vla
memset(E,0,sizeof(E));
E[1] = 20*N;
for(int i=2;i<=N-1;++i)
{
E[i] = (20*N+i*E[i-1])/static_cast<double>(i);
}
return 20+E[N-1];
}
int main(int argc,char *argv[])
{
int N;
while(cin>>N)
{
cout<<"打死"<<N<<"只蚊子平均时间:"<<avgTime(N)<<"毫秒"<<endl;
}
return 0;
}
改过了,应该是对的
