import java.util.Scanner; publicclass Main {     public static void main(String[] args) {         Scanner in = new Scanner(System.in);         while (in.hasNextInt()) {             int n = in.nextInt();             String bin = Integer.toBinaryString(n);             char[] c = bin.toCharArray(); //10进制转为2进制             int first1 = -1;             int first0 = -1;             for(int i=c.length-1,len=c.length;i>=0;i--){             if(c[i]=='1'&&first1==-1){             first1 = i; //找到从右往左的第一个1             }             if(c[i]=='0'&&first1!=-1){             first0 = i; //从第一个1开始出发,找到第一个0             break;             }             }             c[first1] = '0'; //1变0             c[first0] = '1'; //0变1             System.out.println(Integer.parseInt(String.valueOf(c),2));  //2进制转回10进制         }     } }
点赞 12

相关推荐

LZHR:老哥你从投递简历测评完到一面中间隔了多久呀,我这边已经过了五天了仍显示简历筛选中是不是就是挂了
腾讯求职进展汇总
点赞 评论 收藏
分享
03-19 09:58
河海大学 Java
最喜欢春天的奇亚籽很...:同学,是小红书不是小哄书,一眼就能看到的错误
投了多少份简历才上岸
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务