ZOJ 1526 Big Number

10^7的时间复杂度,

每次重新求一次AC,

用数组存下来MLE,

完全无力吐槽了。。

AC代码:

#include<stdio.h>
#include<math.h>
int main(){
	int i,n,cs;
	double sum;
	scanf("%d",&cs);
	while(cs--){
		sum=0;
		scanf("%d",&n);
		for(i=1;i<=n;i++)
		    sum+=log10(i);
		printf("%d\n",(int)sum+1);
	}
	return 0;
}
MLE代码:

#include<stdio.h>
#include<math.h>
#define X 10000010
int a[X];
int main(){
	int i,cs;
	double t,sum=0;
	for(i=1;i<X;i++){
	    t=log10(i);
		a[i]=a[i-1]+(int)t;
		t-=(int)t;
		sum+=t;
		if(sum>1)sum-=1,a[i]++;
	}
	scanf("%d",&cs);
	while(cs--){
		scanf("%d",&i);
		printf("%d\n",(int)a[i]+1);
	}
	return 0;
}


你可能感兴趣的:(ZOJ 1526 Big Number)