#include<stdio.h>
#include<math.h>
int Fun(int n){
int pos=0;
int k=1;
while((n&k)==0){
k<<=1;
pos++;
}
k=1<<(pos+1);
while((n&k)!=0){
k<<=1;
pos++;
}
// k=k>>1;
// return (n+k);
n&=~(1<<(pos));
n|=(1<<(pos+1));
return n;
}
int main(){
int m=0;
int k=1;
scanf("%d",&m);
int max=Fun(m);
printf("%d",max);
return 0;
}
(c语言版)找出第一个比m大且二进制中1相当等的数max
于 2024-02-01 18:13:17 首次发布