首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

编程之好2.2 求N!中最低位1 的位置

2013-09-11 
编程之美2.2 求N!中最低位1 的位置/*两种方法求N!的二进制表示中最低位1的位置2013-09-10 14

编程之美2.2 求N!中最低位1 的位置

/*=============两种方法求N!的二进制表示中最低位1的位置2013-09-10 14:33 by Mei===============*/#include <iostream>using namespace std;int num(int n){int a = 0;while(n%2==0){a++;n = n/2;}return a;}//第一种方法int first(int n){int ret = 0;for(int i=2; i<=n;i+=2){ret += num(i);}return ret+1;}//第二种方法int second(int n){int ret = 0;while(n){n >>= 1;ret += n;}return ret+1;}int main(){int n;cout <<"请输入n: ";cin >> n;cout <<first(n)<<endl;cout <<second(n) << endl;return 0;}

热点排行