搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求解这条题的思路
标题:
求解这条题的思路
只看楼主
dzkdfjy
等 级:
新手上路
帖 子: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
静水且流深
等 级:
贵宾
威 望:
11
帖 子:60
专家分:319
注 册:2017-7-7
第
2
楼
得分:10
程序代码:
i=
2140000000
; j=
1
,k=
0
;
for
(;j<=i;j*=
2
,k++); 打印k-
1
不过是爱情,又能走多久
2017-10-03 23:23
吹水佬
等 级:
版主
威 望:
432
帖 子:10064
专家分:41463
注 册:2014-5-20
第
3
楼
得分: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
3
1/1页
1
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-481109-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.012189 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved