一個球從100高度自由落下,每次落下后反彈回原高度的一半再落下,求它第3次落下時一共經(jīng)過了多少米
- 教育綜合
- 2022-11-12 07:56:20
C程序:一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
這是個編程結(jié)合數(shù)學(xué)的問題,編程思路很簡單,運(yùn)用一個循環(huán)就好了,重點(diǎn)在于計算反彈總共經(jīng)過多少米(第一次循環(huán)加一百米,之后的循環(huán)每次要加兩倍)。以下是具體代碼:
#include
#include
#include
main()
{
floathigh=100,t=100;
inti,n;
printf("Input:\n");
scanf("%d",&n);
for(i=0;ihigh=high/2;
t+=2*high;
}
t-=2*high;
printf("%dtimes:\n",n);
printf("%.3f\n",t);
printf("%.3f\n",high);
system("pause");
}
一個球從100米高度自由落下,每次落地后反彈回原高度的一半,再落下。
這題可以套用數(shù)學(xué)公式n是幾次落地
n次落地總共經(jīng)過多少米的公式:
總長=2*長-(4*長/2^n)
最后1次落地時反彈的高度公式:
高度=長/2^n
你可以套用上面的公式用筆算或者用計算器算的結(jié)果和我截圖里的一樣。
用C程序編寫:一個球從100m高度自由落下,每次落...
因為這9次有一個上升和回落的過程,而第一次只有下降,而第一次下降為100米,所以s的初始值設(shè)為100,然后再循環(huán)9次就可以得到結(jié)果了。
ncludestdio.h>
void main()
{
long a;int j,i=0,b[20];
scanf("%ld",&a);
while(a!=0)
{
b[i++]=a%10;
a=a/10;
}
for(j=i-1;j>=0;j--)
printf("%d ",b[j]);
printf("\n這是%d位數(shù)\n",i);
}
擴(kuò)展資料:
C的運(yùn)算符包含的范圍很廣泛,共有種34個運(yùn)算符。C語言把括號、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C的運(yùn)算類型極其豐富表達(dá)式類型多樣化,靈活使用各種運(yùn)算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運(yùn)算。
C的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實現(xiàn)各種復(fù)雜的數(shù)據(jù)類型的運(yùn)算。并引入了指針概念,使程序效率更高。另外C語言具有強(qiáng)大的圖形功能, 支持多種顯示器和驅(qū)動器。且計算功能、邏輯判斷功能強(qiáng)大。
參考資料來源:百度百科-c程序
一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時,共經(jīng)過多少米?
一球從100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地時,共經(jīng)過299.8米。
分析解答:
每次落地后反跳回原高度的一半,經(jīng)過的路程為原高度的一半,即原來的高度除以2,
第一次落地經(jīng)過100米,計作a1;
第二次落地經(jīng)過(100/2)*2=100米,計作a2;
第三次落地經(jīng)過(100/4)*2=50米,計作a3;
第四次落地經(jīng)過(100/8)*2=25米,計作a4;
第n次落地經(jīng)過[100/2^ (n-1)]*2=100/2^ (n-2),計作an;
10次落地共經(jīng)過路程:
S10=a1+a2+a3+??+a10=100+100+50+??+100/2^ 8=299.6米。
擴(kuò)展資料:
1、分析球每一次落地時經(jīng)過的路程,包括下落和反彈兩部分路程。
如:第一次落地經(jīng)過100米;之后反彈50米,再落地50米,因此,第二次落地經(jīng)過100米;之后反彈25米,再落地25米,因此,第三次落地經(jīng)過50米;??歸納總結(jié)得到球落地經(jīng)過路程的規(guī)律。
2、10次落地經(jīng)過的總路程,需要將每一次落地經(jīng)過的路程相加而得到。