您的位置:

c语言珠峰高度,目前珠峰高度

本文目录一览:

用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;

}