//测试 计算阶乘后六位 耗时(不包括输入时间) #include<iostream> #include<string> #include<sys/timeb.h>//相关头文件 using namespace std; int main() { const int MOD=1000000; int i,j,n,s=0; cin>>n; timeb t1,t2;//timeb是结构类型 long t; ftime(&t1);//获取开始时间 for( i=1;i<=n;i++) { int f=1; for(j=1;j<=i;j++) f=(f*j%MOD); s=(s+f)%MOD; } cout<<s<<endl;; ftime(&t2);//获取结束时间 t=(t2.time-t1.time)*1000+(t2.millitm-t1.millitm);//计算时间差,以毫秒为单位 cout<<t; return 0; } 对于结构timeb: timeb的定义: struct _timeb { time_t time; unsigned short millitm; short timezone, dstflag; }; time是从UTC时间1970年1月1日午夜(00:00:00)起累计的秒数; millitm是一秒内的毫秒数 dstflag不为0,说明这是夏令时时间 timezone是UTC时间和本地时间的相差分钟数