2022年1月20日 星期四

UVa12869

解題心得

第一次解這種類型的題目。

題目問在給定範圍的階乘內數字結尾有幾個連續的零。我們都知道零代表著10,也就是2*5,如此可推論每當有一組2跟5時就會多一個零。只要能知道有多少個2、5就能知道答案,又因為5是每五個數字出現一次,2只要每2個數字就會出現一次,可知5才是主宰零出現次數的關鍵。

因此這題只要算5出現了幾次,也就是除以5就好了。

程式碼

#include <iostream>
using namespace std;

int main()
{
	long long int low, high;
	while(cin>>low>>high)
	{
		if(low==0&&high==0) break;
		
		cout<<high/5 - low/5 + 1<<endl;
	}
	return 0;
}

沒有留言:

張貼留言