Skip to Content
CoursesCSC102การบวกและลบตามเงื่อนไข Modulo 13

การบวกและลบตามเงื่อนไข Modulo 13

โจทย์

กำหนดค่าจำนวนเต็ม a ให้คืนค่าผลรวมระหว่าง a และจำนวนเต็มห้าค่าถัดไปที่มากกว่า a อย่างไรก็ตาม หากค่าจำนวนเต็มใดในห้าค่าถัดไปนั้นหารด้วย 13 ลงตัว ให้ลบค่านั้นแทน ยกตัวอย่างเช่น หาก a = 10 ผลลัพธ์จะเป็น 10+11+12 -13 +14+15 ซึ่งเท่ากับ 49

InputOutput
1049
-23-123
26171

โค้ด

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); for (int i = 0; i < 5; i++) { int nextNum = a + i + 1; a += (nextNum % 13 == 0) ? -nextNum : nextNum; } System.out.println(a); } }

คำอธิบาย

ขั้นตอนที่ 1: การเริ่มต้นโปรแกรม

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in);
  • โค้ดเริ่มต้นด้วยการ import คลาส Scanner ซึ่งเป็นเครื่องมือที่ช่วยให้เราสามารถรับข้อมูลจากผู้ใช้ได้
  • เราสร้างคลาสชื่อ Main และกำหนดเมธอด main ซึ่งเป็นจุดเริ่มต้นของโปรแกรม
  • เราสร้างตัวแปร scanner เพื่อใช้รับข้อมูลจากผู้ใช้

ขั้นตอนที่ 2: การรับข้อมูลจำนวนเต็ม a

int a = scanner.nextInt();
  • เราใช้ scanner.nextInt() เพื่อรับจำนวนเต็ม a จากผู้ใช้ และเก็บไว้ในตัวแปร a

ขั้นตอนที่ 3: การวนลูปเพื่อคำนวณผลรวม

for (int i = 0; i < 5; i++) { int nextNum = a + i + 1; a += (nextNum % 13 == 0) ? -nextNum : nextNum; }
  • เราใช้ลูป for เพื่อทำงานซ้ำ 5 ครั้ง (สำหรับ 5 จำนวนถัดไป)
  • ในแต่ละรอบของลูป:
  1. เราคำนวณจำนวนถัดไป (nextNum) โดยใช้สูตร a + i + 1
  2. เราใช้เงื่อนไขแบบย่อ (ternary operator) เพื่อตรวจสอบว่า nextNum หารด้วย 13 ลงตัวหรือไม่
  • ถ้าหารด้วย 13 ลงตัว (nextNum % 13 == 0) เราจะลบ nextNum จาก a
  • ถ้าไม่ใช่ เราจะบวก nextNum เข้ากับ a

ขั้นตอนที่ 4: การแสดงผลลัพธ์

System.out.println(a);
  • สุดท้าย เราแสดงค่า a ซึ่งเป็นผลลัพธ์สุดท้ายของการคำนวณ

ตัวอย่างการทำงาน

สมมติว่าผู้ใช้ป้อน a = 10:

  1. รอบที่ 1: nextNum = 11, a = 10 + 11 = 21
  2. รอบที่ 2: nextNum = 12, a = 21 + 12 = 33
  3. รอบที่ 3: nextNum = 13, a = 33 - 13 = 20 (เพราะ 13 หารด้วย 13 ลงตัว)
  4. รอบที่ 4: nextNum = 14, a = 20 + 14 = 34
  5. รอบที่ 5: nextNum = 15, a = 34 + 15 = 49

หลักการทำงาน

ปรับปรุงล่าสุด