求N!二进制最低位1的位置
来源:互联网 发布:js文件怎么使用 编辑:程序博客网 时间:2024/05/21 22:40
#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;
system("pause");
return 0;
}
// 递归求阶乘
long long factorial(int iCnt)
{
if(iCnt==2)
return 1;
else
return iCnt*(factorial(iCnt-1));
}
// 十进制转换为二进制
template<typename T>
void DemicalConversBinary(T llret)
{
unsigned bitscount=sizeof(T);
cout<<"bitscount: "<<bitscount<<endl;
unsigned char* p=reinterpret_cast<unsigned char *>(&llret);
for(int i=bitscount-1;i>=0;--i)
{
for(int j=7;j>=0;--j)
*(p+i)&(1<<j)?(cout<<"1"):(cout<<"0");
if(i!=0)
cout<<",";
}
cout<<endl;
}
// 判断最低位为1的情形
int lowestOne(long long llN)
{
int iCnt=0; // 计数
while(llN%2==0)
{
++iCnt;
llN/=2;
}
return iCnt;
}
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;
system("pause");
return 0;
}
// 递归求阶乘
long long factorial(int iCnt)
{
if(iCnt==2)
return 1;
else
return iCnt*(factorial(iCnt-1));
}
// 十进制转换为二进制
template<typename T>
void DemicalConversBinary(T llret)
{
unsigned bitscount=sizeof(T);
cout<<"bitscount: "<<bitscount<<endl;
unsigned char* p=reinterpret_cast<unsigned char *>(&llret);
for(int i=bitscount-1;i>=0;--i)
{
for(int j=7;j>=0;--j)
*(p+i)&(1<<j)?(cout<<"1"):(cout<<"0");
if(i!=0)
cout<<",";
}
cout<<endl;
}
// 判断最低位为1的情形
int lowestOne(long long llN)
{
int iCnt=0; // 计数
while(llN%2==0)
{
++iCnt;
llN/=2;
}
return iCnt;
}
0 0
- 求n的阶层二进制最低位1的位置
- 求N!二进制最低位1的位置
- 求N!的二进制表示最低位的1的位置(从右向左数)
- 求N!的二进制表示中最低位1的位置
- 求N!的二进制表示中最低位1的位置
- 求N!的二进制表示中最低位1的位置
- 编程之美---求N!的二进制表示中最低位1的位置
- 求N!的二进制表示中最低位1的位置 ->求 N!的质因子2的个数
- 判断N!中二进制中最低位1的位置
- 求N!的二进制表示中最低位1的位置解答题中一个小证明
- python求解给定一个整数N,求N!末尾有多少个0,求N!的二进制中最低位1的位置
- 给定一个整数N,那么N的阶乘N!末尾有多少个0呢?求N!的二进制表示中最低位1的位置。
- n! 最低位1的位置
- N!最低位1的位置
- N的阶乘二进制表示的最低位1的位置
- C程序:n!的二进制表示中最低位1的位置
- 编程之美-2.2、n阶乘的二进制表示中最低位1的位置
- 阶乘N!的二进制表示中最低位1的位置
- 每天一个linux命令(50):crontab命令
- DHCP 报文结构和类型
- iOS根据屏幕宽高判断当前设备型号
- java如何将字符转换成‘16进制格式’的字符串编码
- C# 保存声音 录音
- 求N!二进制最低位1的位置
- 触发器会出现死循环!~~
- [php] thinkphp实现 163 qq 邮箱收发邮件(切实可用)
- 我写过的脚本(opensuse复制系统盘时修改部分文件的相关信息)
- 【android】解码混淆过的堆栈跟踪信息
- C,C++,VC, VC++,MFC有什么区别?
- 数据库SQL优化大总结之 百万级数据库优化方案
- 行内元素与块级元素的区别
- Microsoft SQL Server 2008 链接服务器Oracle Database