摘要: 这个题的意思就是求 N! 2 #include 3 int main() 4 { 5 int n,i; 6 __int64 t; 7 double ans; 8 while(scanf("%d",&n),n!=0) 9 {10 t=(n-1960)/10+2;11 t=1<<t;12 i=0;13 ans=0;14 while(ans<t)15 {16 ans+=log((double)(++i))/log(2.0);17 ... 阅读全文
posted @ 2013-07-15 15:38 zlyblog 阅读(321) 评论(0) 推荐(0)
摘要: 解决该题要注意一下几个方面:1、任何一个自然数都可分解质因数。N!=1*2*3*4*5*6*...*N=2^a*3^b*5^c*7^d......=(2*5)^c*2^(a-c)*3^b*7^d......=10^c*2^(a-c)*3^b*7^d......2、两数相乘产生0,只会是2和5相乘。又由于在分解质因数时小的质数的幂次一定不小于大的质数的幂次大,所以a>=c。故解决该题转化成找出N!中5的幂次。3、如何找出5的幂次呢?举例说明:N=26,阶乘中包含因数5、10、15、20、25,可知5的幂次为6。5=5*1,10=5*2,15=5*5,20=5*4,25=5*5,求解时用26 阅读全文
posted @ 2013-07-15 14:33 zlyblog 阅读(416) 评论(0) 推荐(0)
摘要: 详细参考:http://www.cnblogs.com/jbelial/archive/2011/08/08/2131165.html讲的很详细,很有用刚开始在写重心x,y时,将除以3放在这里x+=(x0+x1+x2)*are/3;y+=(y0+y1+y2)*are/3;交了两遍都是WA,后来改成最后结果除以3 ,就A了,原来是中间除以三取精度时在最后结果可能有误差,以后要注意取精度的计算 1 #include 2 int main() 3 { 4 int t,n,i; 5 double x0,x1,x2,y0,y1,y2; 6 double are,sum; 7 ... 阅读全文
posted @ 2013-07-15 14:06 zlyblog 阅读(207) 评论(0) 推荐(0)
摘要: 1 #include 2 #define e 200907 3 int main() 4 { 5 __int64 a,b,c,n,ans; 6 int t; 7 scanf("%d",&t); 8 while(t--) 9 {10 scanf("%I64d%I64d%I64d%I64d",&a,&b,&c,&n);11 if(n==1)12 {13 printf("%I64d\n",a%e);14 continue;15 }16 ... 阅读全文
posted @ 2013-07-15 09:35 zlyblog 阅读(183) 评论(0) 推荐(0)