给出一个整数 x ,要找一个整数 y ,满足 y<x ,且 yy的二进制表示中 11 的个数比 x 的二进制表示中 1 的个数少 1 ,满足要求的 yy 可能有多个,输出最大的那个。
4条回答 默认 最新
- CSDN专家-天际的海浪 2022-04-08 22:58关注
从 x 倒序循环,用循环的数每次除2取得余,统计1 的个数
你题目的解答代码如下:
#include <iostream> using namespace std; int f(int y) { int count = 0; while (y > 0) { if (y % 2 == 1) count++; y /= 2; } return count; } int main() { int x, n, y; cin >> x; n = f(x); for (y = x - 1; y >= 0; y--) { if (n - f(y) == 1) { cout << y << endl; break; } } return 0; }
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 表达式必须是可修改的左值
- ¥15 如何绘制动力学系统的相图
- ¥15 对接wps接口实现获取元数据
- ¥20 给自己本科IT专业毕业的妹m找个实习工作
- ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
- ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)
- ¥50 mac mini外接显示器 画质字体模糊
- ¥15 TLS1.2协议通信解密
- ¥40 图书信息管理系统程序编写
- ¥20 Qcustomplot缩小曲线形状问题