【牛客 - 302哈爾濱理工大學軟體與微電子學院第八屆程式設計競賽同步賽(低年級)】 小樂樂算數字(水題,快速冪,lowbit)
阿新 • • 發佈:2018-12-06
題幹:
小樂樂最喜歡玩數字了。
小樂樂最近迷上了2這個整數,他覺得2的冪是一種非常可愛的數字。
小樂樂想知道整數x的最大的 2的冪 (2^y)的因子。
y為整數。
輸入描述:
輸入整數x。(1<=x<=1e18)
輸出描述:
輸出整數x的最大(2^y)的因子。
示例1
輸入
7
輸出
1
說明
2^0
示例2
輸入
8
輸出
8
示例3
輸入
6
輸出
2
備註:
7的最大(2^x)的因子是:1 8:8 6:2
解題報告:
當個水題存下來以後給學弟做2333、、、
AC程式碼:
#include<cstdio> #include<iostream> #include<algorithm> #include<queue> #include<map> #include<vector> #include<set> #include<string> #include<cmath> #include<cstring> #define ll long long #define pb push_back #define pm make_pair #define fi first #define se second using namespace std; const int MAX = 2e5 + 5; char s[400][400]; int main() { ll x; cin>>x; ll up = (ll)log2(x); for(ll i = up; i>=0; i--) { if(x%(ll)pow(2,i) == 0) { printf("%lld\n",(ll)pow(2,i));return 0 ; } } return 0 ; }
好像標解不是這樣的,,是直接輸出一個lowbit,,,想想也確實。。。沒毛病啊、、