C刷題記錄-1019
阿新 • • 發佈:2017-11-13
++ pri 每次 三次 n) += for nbsp 高度
題目描述
一球從M米高度自由下落,每次落地後返回原高度的一半,再落下。 它在第N次落地時反彈多高?共經過多少米? 保留兩位小數輸入
M N輸出
它在第N次落地時反彈多高?共經過多少米? 保留兩位小數,空格隔開,放在一行樣例輸入
1000 5
樣例輸出
31.25 2875.00
1 #include <stdio.h> 2 #include <math.h> 3 4 int main(){ 5 6 int N,i; 7 float M,height,total_height ; 8 scanf("%f %d",&M,&N);9 height = pow(0.5,N)*M; 10 /* 11 整個高度, 第一次落地時的高度=M, 然後第一次彈起至第二次落地走了 2 * 1/2M 12 然後第二次彈起到第三次落地 走了 2* 1/2 *1/2 M,所以第三次落地時 其實是第二次彈起 13 高度的兩倍 14 | 15 | 16 | 17 | 18 | | 19 | | 20 | | | 21 | | | 22 1 2 3 23 */ 24 total_height = M; 25 for (i = 1; i <= N-1;i ++){ //N次落地,其實是前面N-1次落地高度的2倍+M26 total_height += pow(0.5,i)*M*2; 27 } 28 printf("%.2f %.2f",height,total_height); 29 return 0; 30 }
C刷題記錄-1019