TYVJ 1142 阶乘统计3 解题报告

  这个题目刚开始因为就是枚举,后来数据太大,不能搜,就想到数学方法了,答案就是n/5+n/5^2+n/5^3,知道5^k > n,就不加了。
  代码如下:

#include <stdio.h>
#include <stdlib.h>
long long ans;

int main(int argc, char **argv)
{
	int i;
	long long j = 5;
	long long n;
	scanf("%I64d", &n);
	for(i = 1; j <= n; i++){
		ans += n / j;
		j *= 5;
	}
	printf("%I64d\n", ans);
	return 0;
}

posted @ 2011-08-14 23:03  zqynux  阅读(244)  评论(0编辑  收藏  举报