เราได้รับตัวเลข N เป้าหมายคือหาจำนวนตัวเลข N หลัก (รวม leading zeros) ที่มีเลข 0 จำนวนคู่หลัก
ตัวอย่าง
อินพุต: N = 4
เอาต์พุต: 7047
อินพุต: N = 5
เอาต์พุต: 66383
แนวทางการแก้ปัญหา (คณิตศาสตร์)
- ตัวเลข N หลักทั้งหมด:
T = 10N - ตัวเลขที่มี 0 จำนวนคี่:
O = (10N - 8N) / 2 - ตัวเลขที่มี 0 จำนวนคู่:
E = T - O = (10N + 8N) / 2
การนำไปใช้ (Implementation)
#include <bits/stdc++.h>
using namespace std;
int count_even(int N) {
long long total = pow(10, N);
long long odd = (pow(10, N) - pow(8, N)) / 2;
long long even = total - odd;
return even;
}
int main() {
int N = 3;
cout << "Count of Numbers with N digits which consists of even number of 0's are: " << count_even(N);
return 0;
}
เอาต์พุต
Count of Numbers with N digits which consists of even number of 0's are: 755
หมายเหตุ: สูตรที่ถูกต้องคือ E = (10^N + 8^N) / 2 โค้ดต้นฉบับมีการคำนวณผิดพลาดเล็กน้อย