touwangyi 2015-10-18 01:31 采纳率: 60%
浏览 1490
已采纳

C语言题目,跪求大神给个代码,实在不会啊

描述
大家都知道二进制数只含有0和1,那么问题来了,告诉你一个区间[L,R),L,R都是int范围类的正整数.且L < R,在这个区间里的所有数转化为二进制后所有位数之和最大的数是?(如果有多个输出值最小的)

输入
多组测试数据,每组测试数据仅含有两个整数L,R。
输出
一个整数,表示在以上区间内转化成二进制后所有位数之和最大的数
样例输入
4 7
样例输出
5

  • 写回答

3条回答 默认 最新

  • cxlovu 2015-10-18 03:09
    关注
    #include <stdio.h>
    
    int cal(int n){
        int res = 0;
        while(n){
            res += (n & 1);
            n >>= 1;
        }
        return res;
    }
    
    int main()
    {
        int l,r;
        int i, res;
        int tmp, curr_max = 0;
        printf("请输入L和R的值\n");
        while(scanf("%d%d", &l, &r)){
        for(i = l; i < r; i++){
            tmp = cal(i);
            if(tmp > curr_max){
                curr_max = tmp;
                res = i;
            }
        }
        printf("最终的结果:%d\n", res);
      }
      return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 matlab实现基于主成分变换的图像融合。
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊