#include<iostream>
using namespace std;
long long factorial(int N);
template<typename T>
void DemicalConversBinary(T llret);
// 判断最低位为1的情形
int lowestOne(long long);
int main(int argc, char ** argv)
{
int iCnt=18;
int iRet=0;
long long llret;
llret=factorial(iCnt);
cout<<"十进制结果: "<<llret<<endl;
DemicalConversBinary(llret); // 十进制转换为二进制
cout<<"最低位1的位数: "<<lowestOne(llret)<<endl;
using namespace std;
long long factorial(int N);
template<typename T>
void DemicalConversBinary(T llret);
// 判断最低位为1的情形
int lowestOne(long long);
int main(int argc, char ** argv)
{
int iCnt=18;
int iRet=0;
long long llret;
llret=factorial(iCnt);
cout<<"十进制结果: "<<llret<<endl;
DemicalConversBinary(llret); // 十进制转换为二进制
cout<<"最低位1的位数: "<<lowestOne(llret)<<endl;