| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1015 人关注过本帖
标题:求解这条题的思路
只看楼主 加入收藏
dzkdfjy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2017-10-3
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
求解这条题的思路
编写程序,求满足公式的变量k的最大值:
        2^k <= m
其中,m是程序输入的一个正整数。

2^k表示2的k次方。

输入输出格式要求:
    输入格式:m回车
    程序中要求全部使用unsigned int 类型数据。scanf和printf中使用%u
    只输出运算结果,请不要输出其他字符。
例如:
输入:16回车
输出:4
输入:2140000000回车
输出:30
搜索更多相关主题的帖子: 思路 输入 输出 格式 回车 
2017-10-03 22:30
静水且流深
Rank: 5Rank: 5
等 级:贵宾
威 望:11
帖 子:60
专家分:319
注 册:2017-7-7
收藏
得分:10 
程序代码:
    i=2140000000;
    j=1,k=0;
    for(;j<=i;j*=2,k++);
    打印k-1

不过是爱情,又能走多久
2017-10-03 23:23
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10607
专家分:43186
注 册:2014-5-20
收藏
得分:10 
图片附件: 游客没有浏览图片的权限,请 登录注册

#include <stdio.h>
#include <limits.h>
#define K   sizeof(unsigned int)*CHAR_BIT
main()
{
    unsigned int  m, k;
    scanf("%u", &m);
    if (m<1 || m>(1<<(K-1)))
        return;
    for (k=0; (1<<k)<m; ++k) NULL;
    if ((1<<k) != m) --k;
    printf("%u\n", k);
}

2017-10-04 07:34
快速回复:求解这条题的思路
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030590 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved