Skip to content

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


Problem

สรุปโจทย์

รับค่าวันของวันสิ้นปี แล้วแสดงผลออกมาเป็นวันแม่เเห่งชาติในปีเดียวกัน (1 คือวันอาทิตย์ ไล่ไปเรื่อยๆจนถึง 7 คือวันเสาร์)

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

เขียนโค้ดเพื่อหาวันแม่แห่งชาติในปีนั้น

ตัวอย่าง

Input Output
3 2

Prerequisites

  • Math

Solution

วิธีทำ

หากลองไล่นับจำนวนวัน จะได้ว่า ตั้งแต่วันแม่ ถึงวันสิ้นปี จะมีทั้งหมด 141 วัน นั่นคือ หากเราลบ 141 ออกจากวันที่เราได้รับมา แล้วหาเศษที่เหลือจากการหารด้วย 7 เราจะได้เป็นวันในสัปดาห์ของวันนั้น

ซึ่งสังเกตว่า 141 จะสมภาคกับ 1 ภายใต้มอดุโล 7 (จำนวนวันในสัปดาห์)

ดังนั้น จาก Observation และการคำนวณต่างๆ เราจะสามารถ -1 ค่านั้น แล้วตอบได้เลย แต่แค่เขียน if-else ดักเอาไว้ กรณีที่ค่าที่เรารับมาเท่ากับ 1 เมื่อ -1 จะเหลือ 0 เราก็แค่พิมพ์ตอบไปเป็น 7 นั่นเองครับ


Code

miss_mom.c
#include <stdio.h>

int main(){
    int n;
    scanf("%d", &n);
    if (n == 1) printf("7");
    else printf("%d", n - 1);
    return 0;
}