现在的位置: 首页 > 综合 > 正文

如何获得程序运行时间?

2017年11月21日 ⁄ 综合 ⁄ 共 520字 ⁄ 字号 评论关闭

用书中阶乘之和的例子举例。

注意:n比较大时,会出现乘法溢出。方法是改成“每步取模”。

数学原理:要计算只包含加法、减法、乘法的整数表达式除以正整数n的余数,可以在每步计算之后对n取余,结果不变。

如何获得程序运行时间?

方法:可以使用time.h和clock()函数获得程序运行时间。常数CLOCKS_PER_SEC和操作系统相关,请不要直接使用clock()函数的返回值,而应总是除以CLOCKS_PER_SEC。

#include<stdio.h>
#include<time.h> 
int main(void)
{
	const int MOD=1000000;
	int n,S=0;
	scanf("%d",&n);
	if(n>25)
	n=25; //n大于25后,末六位数字就不受影响了。
	for(int i=1;i<=n;i++){
		int factorial=1;
		for(int j=1;j<=i;j++){
			factorial=(factorial*j%MOD);
		}
		S=(S+factorial)%MOD;
	}
	printf("%d\n",S);
	printf("Time used=%.2f\n",(double)clock()/CLOCKS_PER_SEC);
	return 0;
}

抱歉!评论已关闭.