Skip to content

ข้อสอบท้ายค่าย 1 ศูนย์ สอวน.กรุงเทพมหานคร ปี 2567 ข้อที่ 3


Problem

สรุปโจทย์

เราต้องการหาความสูงของจรวด ณ เวลาที่ \(t\) ของจรวดที่ถูกส่งไปบินนอกโลก เมื่อเรารู้ความสูงของจรวด ณ เวลาที่ \(0-5\)

สิ่งที่ต้องทำ

เขียนโค้ดเพื่อหาความเร็วของจรวด ณ เวลาที่ \(t\)

ตารางความสูงของจรวดที่โจทย์กำหนดให้

เวลา (วินาที) ความสูง (เมตร)
0 0
1 4
2 14
3 30
4 52
5 80

Prerequisites

  • Math

Solution

วิธีทำ

สังเกต:

  • 0: 0
  • 1: 4
  • 2: 14
  • 3: 30
  • 4: 52
  • 5: 80

จะเพิ่มขึ้นทีละ 4, 10, 16, 22, 28 ซึ่งสังเกตว่า การเพิ่มขึ้น จะเพิ่มขึ้นทีละ 6

  • จะได้ความสัมพันธ์เวียนเกิดเป็น: \(h(t) = h(t - 1) + (6t - 2)\) โดยมี \(h(0) = 0\)

  • แทนค่า:
    \(h(t) = h(t - 1) + (6t - 2)\)
    \(h(t - 1) = h(t - 2) + (6(t - 1) - 2)\)
    .
    .
    \(h(1) = h(0) + (6(1) - 2)\)
    \(h(0) = 0\)

  • จัดรูป
    \(h(t) = (6t - 2) + (6(t - 1) - 2) + (6(t - 2) - 2) + ... + (6(1) - 2) + 0\)
    \(h(t) = (6t + 6(t - 1) + 6(t - 2) + ... + 6(1)) - 2t\)
    \(h(t) = 6(1 + 2 + 3 + ... + (t - 1) + t) - 2t\)
    \(h(t) = 6(\frac{t(t + 1)}{2}) - 2t\)
    \(h(t) = 3t(t + 1) - 2t\)
    \(h(t) = 3t^2 + 3t - 2t\)
    \(\therefore h(t) = 3t^2 + t\)

จะได้สมการคำนวณความสูง ณ \(t\) ใดๆ เป็น: \(3t^2 + t\)


Code

astronaut.c
#include <stdio.h>

int main(){
    int t; 
    scanf("%d", &t);
    printf("%d", 3*t*t + t);
    return 0;
}