阿里笔试题——算阶乘的末尾有几个零

用十进制计算30!(30的阶乘),将结果转换成3进制进行表示的话,该进制下的结果末尾会有____个0。

#include<iostream>

using namespace std;

#define LINT int

LINT count_number(LINT n)

{

	LINT a=n;

	LINT re=0;

	while(1)

	{

		if(a==0)

			break;

		LINT b=a;

		a--;

		while((b!=0)&&(b%3==0))

		{

			re++;

			b=b/3;

		}

	}

	return re;

}

int main()

{

	cout<<count_number(30)<<endl;



}

  

你可能感兴趣的:(笔试题)