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; }
改过了,应该是对的