小乐乐算数字 哈尔滨理工大学软件与微电子学院第八届程序设计竞赛同步赛(低年级)

版权声明:版权声明,使用请说明出处 https://blog.csdn.net/qq_41835683/article/details/84677526

链接: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;
}

猜你喜欢

转载自blog.csdn.net/qq_41835683/article/details/84677526