階乘二進位制表示末尾1的位置
給定乙個非負整數n,如果用二進位制數表達n!的結果,返回最低位的1在哪個位置上,認為最右的位置為位置0。
輸入描述:
第一行乙個整數n。
輸出描述:
輸出乙個整數表示答案
示例1輸入
1
輸出0
說明1! = 1,最低位的1在0位置上
示例2
輸入
2
輸出1
說明2 != 2,最低位的1在1位置上
示例3
輸入
1000000000
輸出999999987
備註:
1 ⩽n
⩽1018
1 \leqslant n \leqslant 10^
1⩽n⩽10
18題解:
與階乘末尾 0 的個數相似,最低位的 1 出現在哪個位置,取決於 1~n 的數中有多少個因子 2 ,因為每出現乙個因子 2 ,最低位的 1 都會左移一位。
**:
#include
using
namespace std;
typedef
long
long ll;
intmain
(void
)return0*
printf
("%lld\n"
, ret)
;}
1的二進位制表示
我們已經知道計算機中,所有資料最終都是使用二進位制數表達。我們也已經學會如何將乙個10進製數如何轉換為二進位制數。不過,我們仍然沒有學習乙個負數如何用二進位制表達。比如,假設有一 int 型別的數,值為5,那麼,我們知道它在計算機中表示為 00000000 00000000 00000000 000...
LintCode 二進位制表示
給定乙個數將其轉換為二進位制 均用字串表示 如果這個數的小數部分不能在 32 個字元之內來精確地表示,則返回 error 樣例 n 3.72 返回 error n 3.5 返回 11.1 題目很簡單,直接上 吧 public class binaryrepresention return res.r...
LintCode 二進位制表示
給定乙個數將其轉換為二進位制 均用字串表示 如果這個數的小數部分不能在 32 個字元之內來精確地表示,則返回 error 您在真實的面試中是否遇到過這個題?yes 樣例n 3.72 返回 error n 3.5 返回 11.1 好久沒做題 有點懵逼 根據資料試出來的 臥槽 public class ...