本文目錄一覽:
- 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;
}
原創文章,作者:LCKAG,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/317074.html