ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่ตรวจสอบว่าตัวเลขจำนวนมากที่ระบุในรูปแบบสตริงหารด้วย 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
บทสรุป
หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น