d226: 10071 - Back to High School Physics (22)
更新時間:2016/12/21
內容:某一個粒子有一初速度和等加速度。假設在 t 秒後此粒子的速度為 v ,請問這個粒子在 2t 秒後所經過的位移是多少。
輸入說明:
每組測試資料1列,有2個整數,分別代表 v(-100 <= v <=100)和 t(0 <= t <= 200)。
輸出說明:
對每組測試資料請輸出這個粒子在 2t 秒後所經過的位移是多少。
範例輸入:
0 0
5 12
範例輸出:
0
120
提示:
v-t圖:圖形下的面積,代表位移。此圖形會是個梯形。
想一想,再看解答~
我的解題想法:
計算梯形面積,此題目的v是梯形中線長。
梯形中線公式:(上底+下底)/2;
故梯形面積公式可以寫成:梯形中線長*梯形高。
程式碼:
#include <stdio.h> int main(void){ int v,t; while(~scanf("%d%d",&v,&t)){ printf("%d\n",v*2*t); } return 0; }程式碼解析:
#1: | 引入標準輸入/輸出串流。 |
#2: | 主程式開始,回傳引數int,沒有參數。 |
#3: | 宣告2個整數(int)變數「v」、「t」,範圍–2,147,483,648 到 2,147,483,647。 |
#4: | 迴圈 while 開始。題目的輸入方式是多組數據輸入,並不知道結束的長度為多少,所以使用while迴圈搭配scanf判斷資料是否結尾(EOF)。 從標準輸入讀取格式化數據,讀取2個整數(%d%d),依序指定值給「v」、「t」,並判斷「不是結尾(!=EOF)」是否成立。 |
#5: | 將格式化數據顯示到標準輸出。輸出1個整數並換行(%d\n)「v*2*t」。 |
#6: | 迴圈 while 結束。 |
#7: | 主程式回傳整數「0」。 |
#8: | 主程式結束。 |