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

2008!尾数有多少个0(因数2的个数大于因数5的个数)

2013年10月17日 ⁄ 综合 ⁄ 共 563字 ⁄ 字号 评论关闭

1、2008!尾数有多少个零

    其实就是遍历1到2008,求每个数包含的因数5的总个数

#include<stdio.h>
#include <iostream.h>
#define NUM 2008

//方法一
int find5(int num)
{
    int ret=0;
    while(num%5==0)
	{
        num/=5;
        ret++;
	}
	return ret;
}

//方法二
int numZero(int n)
{
	int count=0,reminder,business;//余数reminder,商business     
	int i,k;                      //i为循环次数,k为5的倍数
	for (i=1;(k=5*i)<=n;i++)
	{
		reminder=k%5;             //余数
		business=k/5;             //商
		while(reminder==0)        //以余数作为过滤条件
		{
			count++; 
			reminder=business%5;   //继续取余数和求商
			business=business/5;
			if (business==0)       
			{
				break;           
			}
		}
	}
	
	return count;
}

int main()
{
	int result=0;
	for(int i=5;i<=NUM;i+=5)
	{
		result+=find5(i);
	}

	cout<<result<<endl;
	cout<<numZero(NUM)<<endl;

	return 0;
}

 

抱歉!评论已关闭.