本文目录一览:
- 1、用c语言,一张纸的厚度为0.1mm,珠穆朗玛峰的高度为8848.13m,假如纸张足够大,将纸对折多
- 2、一张无限大的纸折多少次与珠峰一样高 用c语言进行编程
- 3、C语言习题 设有一张无穷大的纸 厚0.01mm,问对折多少次才能达到珠峰高度8848m
用c语言,一张纸的厚度为0.1mm,珠穆朗玛峰的高度为8848.13m,假如纸张足够大,将纸对折多
题目意思实际上是计算0.1mm乘以多少个2,才大于8848.13m。这里的多少个2,就是对折多少次。
代码如下:
#include stdio.h
void main(){
int paperHigh=1;//纸的厚度,单位十分之一毫米
int mountHigh=8848130;//珠穆朗玛高度,单位十分之一毫米
int number=0;//对折次数
while(paperHighmountHigh){
paperHigh=paperHigh*2;
number++;
}
printf("number=%d\n",number);
}
一张无限大的纸折多少次与珠峰一样高 用c语言进行编程
假设纸的厚度为0.104mm,珠峰取8848m
方法一:
用数学运算化简,本题化为不等式
(2的x次方)*0.104/1000 8848
则x log(2为底)(8848*1000/0.104)的对数的最小整数
则C程序可以简化为:
#include stdio.h
#include math.h
int main() {
double x = log10(8848*1000/0.104)/log10(2);
printf("%.0f\n", ceil(x)); //输出次数
return 0;
}
方法二:
纯程序法,每折一次,都计算当前的高度,与8848做对比,8848时,完成。
#include stdio.h
int main() {
int i = 0;
double h=0.0f;
while (h8848.0) { //这里使用了while循环,也可以改用for, do ... while等
h = pow(2, ++i)*0.104/1000; //化为米
}
printf("%d\n", i);
return 0;
}
C语言习题 设有一张无穷大的纸 厚0.01mm,问对折多少次才能达到珠峰高度8848m
#include stdio.h
int main()
{
double high = 8848000, s = 0.01;
int i;
for (i = 1;; ++i){
s *= 2;
if (s high){
break;
}
}
printf("%d次\n", i);
return 0;
}