ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ตรวจสอบว่าตัวเลขจำนวนมากที่ระบุในรูปแบบสตริงหารด้วย 12 ลงตัวหรือไม่
เราจะใช้คณิตศาสตร์เล็กน้อยเพื่อแก้ปัญหานี้ หากตัวเลขหารด้วย 3 กับ 4 ลงตัว ตัวเลขนั้นก็จะหารด้วย 12 ลงตัว
ตัวเลขหารด้วย 3 ลงตัวถ้าผลรวมของหลักหารด้วย 3 ลงตัว
ตัวเลขหารด้วย 4 ลงตัวถ้าตัวเลขสองหลักสุดท้ายของตัวเลขหารด้วย 4 ลงตัว
เราจะใช้ข้อความข้างต้นและทำให้โปรแกรมสมบูรณ์
ตัวอย่าง
มาดูโค้ดกันเลย
#include <bits/stdc++.h> using namespace std; bool isNumberDivisibleBy12(string num) { if (num.length() >= 3) { int last_digit = (int)num[num.length() - 1]; if (last_digit % 2 != 0) { return 0; } int second_last_digit = (int)num[num.length() - 2]; int sum = 0; for (int i = 0; i < num.length(); i++) { sum += num[i]; } return (sum % 3 == 0 && (second_last_digit * 10 + last_digit) % 4 == 0); } else { int number_as_int = stoi(num); return number_as_int % 12 == 0; } } int main() { string num = "1212121212121212121212121212"; if (isNumberDivisibleBy12(num)) { cout << "Yes" << endl; } else { cout << "No" << endl; } return 0; }
ผลลัพธ์
หากคุณรันโปรแกรมข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้
Yes
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น