小乐乐算数字 哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)
链接:https://ac.nowcoder.com/acm/contest/302/J
来源:牛客网
题(水)解(分~):让这个数一直除2,直到不能整除2为止,(ll)pow(2,ans),就是答案。 注意转ll
时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
小乐乐最喜欢玩数字了。
小乐乐最近迷上了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
代码:
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll x;
cin>>x;
ll ans=0;
while(true){
if(x%2==0){
ans++;
}
else
break;
x/=2;
}
cout<<(ll)pow(2,ans)<<endl;
return 0;
}