問題の意味
衝突ボールやスロープの数を求めて、自由落下のために小さなボールを作るためにどこからか、傾斜を考えると(両方の弾性衝突と仮定して)。
分析
図問題は、以下、X軸と、Y軸は仮想です。
高校の物理のルーチンは、重力加速度は、表面に傾斜した方向に沿って展開することができます。
#include <ビット/ STDC ++ H> 使用して 名前空間STDを、 CONST ダブル G = 9.8 。 constの ダブル EXP = 0.000001 ; 二重、B、X、Y。 INT のmain() { int型のT。 scanf関数(" %のD "、&T)。 一方、(T-- ) { scanf関数(" %LF%LF%LF%LF "、&、&B、&X&Y)。 もし(*はY + B * X < EXP) { のprintf(" 0 \ nは" ); 続行; } ダブルシン= B / SQRT(*はA +のB * B)、COSS = A / SQRT(*はA +のB * B); ダブル all_t = SQRT(2 *((X / COSS) *(シン- 1 /シン)+ Y)/ G); // ランプ時間に沿って ダブル T = SQRT(2 *(X * Y +シン/ COSS)/ G); // 垂直ランプ単一の時間 / / のprintf( "%F%F \ N-"、all_t、T); int型 TMP =(INT)((all_t + EXP)/ T); のprintf(" %Dの\のN- "、(TMPの+ 1)/ 2 ) ; } リターン 0 ; }