先把题目贴出来:
首先是第一个题目的两种解法。
/************************************************************************/
/* 编程之美2.2:给定一个数N,
求N!末尾有几个零 */
/************************************************************************/
int numberOfZero(int n)
{
if(n < 0) return -1;
if(n == 0) return 0;
int ret = 0;
for(int i = 1; i <= n; ++i)
{
int j = i;
while(j % 5 == 0)
{
ret++;
j /= 5;
}
}
return ret;
}
第二种解法:
int numberOfZero2(int n)
{
if(n < 0) return -1;
if(n == 0) return 0;
int ret = 0;
while(n)
{
ret += n / 5;
n /= 5;
}
return ret;
}
#include "algorithm.h"
#include <vector>
#include <string>
#include <iostream>
using namespace std;
int main()
{
display();
int array[] = {7, 2, 38, 11, 5, 31, 29, 1, 39, 79, 56};
// QucikSortHelp(array, 0, sizeof(array) / sizeof(int) - 1);
// KBig(array, 0, sizeof(array) / sizeof(int) - 1, 3);
// heapSort(array, sizeof(array) / sizeof(int));
KBig(array, 5, sizeof(array) / sizeof(int));
cout <<numberOfZero(25)<<endl;;
cout<<numberOfZero2(25);
}