注册 登录
编程论坛 C++教室

求救c语言程序

IQ零担 发布于 2012-12-11 11:13, 280 次点击
一张纸的厚度为0.1mm,珠穆朗玛峰的高度为8848.13m,假如纸张有足够大,将纸对折多少次后可以超过珠峰的高度?
3 回复
#2
rjsp2012-12-11 11:26
对折1次,0.0001*2
对折2次,0.0001*4
对折3次,0.0001*8
……
对折n次,0.0001*2^n

0.0001*2^n >= 8848.13
n >= log(8848.13/0.0001) / log(2)
#3
rjsp2012-12-11 11:49
8848.13/0.0001 = 88481300
二进制是 101010001100001111000010100
搜索第一个1(假设位置为a),和最后一个1(假设位置为b),这两种搜索都有对应的编译指令
如果位置不同,return a+1
否则返回 a
#4
yuccn2012-12-11 12:33
0.0001*2^n >= 8848.13
2^n >= 88481300

2^26 = 67108864
2^27 = 134217728

也就是27
1