คำอธิบายปัญหา
สมมติว่าเรามีเลข 5 หลัก num เราต้องหาผลรวมของตัวเลขแต่ละหลัก วิธีการคือดึงหลักจากขวาไปซ้าย โดยหาร 10 เหลือเศษจะได้หลักสุดท้าย แล้วอัปเดต num เป็นผลหาร (เฉพาะส่วนจำนวนเต็ม) ทำซ้ำจน num = 0
ตัวอย่าง
หากอินพุตเป็น num = 58612 ผลลัพธ์จะเป็น 22 เพราะ 5 + 8 + 6 + 1 + 2 = 22
ขั้นตอนการแก้ปัญหา
- กำหนด num = 58612, sum = 0
- วนลูป while num != 0:
- sum += num % 10 (บวกเศษจากการหาร 10)
- num = num / 10 (อัปเดต num เป็นผลหาร)
- คืนค่า sum
โค้ดตัวอย่าง
#include <stdio.h>
int main() {
int num = 58612;
int sum = 0;
while (num != 0) {
sum += num % 10;
num = num / 10;
}
printf("Digit sum: %d", sum);
return 0;
}
อินพุต
58612
เอาต์พุต
Digit sum: 22