Flip the Bits

You are given a positive integer n. Your task is to build a number m by flipping the minimum number of bits in the binary representation of nsuch that m is less than n (m < n) and it is as maximal as possible. Can you?

Input

The first line contains an integer T (1 ≤ T ≤ 105) specifying the number of test cases.

Each test case consists of a single line containing one integer n (1 ≤ n ≤ 109), as described in the statement above.

Output

For each test case, print a single line containing the minimum number of bits you need to flip in the binary representation of n to build the number m.

Example

input

Copy

2
5
10

output

Copy

1
2

题解:就是计算n异或n-1的1的个数,看看变化几次,然后学到一个新函数__builtin_popcount(n^(n-1))来计算二进制中1的个数。

代码如下:

#include <iostream>
#include <cstdio>
#include <stdlib.h>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <string.h>
#include <vector>
#include <queue>
#include <stack>
#include <set>
#include <map>
#include <ctime>
#define maxn 1007
#define N 100005
#define INF 0x3f3f3f3f
#define PI acos(-1)
#define lowbit(x) (x&(-x))
#define eps 0.000000001
#define read(x) scanf("%d",&x)
#define put(x) printf("%d\n",x)
#define Debug(x) cout<<x<<" "<<endl
using namespace std;
typedef long long ll;

int n;
int main()
{
    int t;
    cin>>t;
    while (t--)
    {
        cin>>n;
        cout<<__builtin_popcount(n^(n-1))<<endl;//取异或
    }
    return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pygame.transform.flip() is a method in the Pygame library that is used to flip an image along its axis. This method can be used to create mirror images or to change the orientation of an image. The method takes three arguments: the image to be flipped, a boolean value indicating whether to flip the image horizontally, and a boolean value indicating whether to flip the image vertically. Syntax: ``` pygame.transform.flip(surface, xbool, ybool) ``` - surface: The image to be flipped. - xbool: A boolean value indicating whether to flip the image horizontally (True or False). - ybool: A boolean value indicating whether to flip the image vertically (True or False). Example: ``` import pygame pygame.init() # Set up the display display_width = 640 display_height = 480 game_display = pygame.display.set_mode((display_width, display_height)) # Load the image my_image = pygame.image.load("image.png") # Flip the image horizontally flipped_image = pygame.transform.flip(my_image, True, False) # Display the original and flipped images game_display.blit(my_image, (0, 0)) game_display.blit(flipped_image, (display_width/2, 0)) pygame.display.update() # Quit the game pygame.quit() ``` In the above example, we first load an image using the `pygame.image.load()` method. We then use the `pygame.transform.flip()` method to create a flipped version of the image by passing in `True` as the first argument to indicate that we want to flip the image horizontally. We then display both the original and flipped images using the `blit()` method. Finally, we update the display and quit the game.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值