1. 程式人生 > >C刷題記錄-1019

C刷題記錄-1019

++ 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倍+M
26 total_height += pow(0.5,i)*M*2; 27 } 28 printf("%.2f %.2f",height,total_height); 29 return 0; 30 }

C刷題記錄-1019