Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

นับจำนวน N หลักที่มีเลข 0 จำนวนคู่หลักใน C++

เราได้รับตัวเลข 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 โค้ดต้นฉบับมีการคำนวณผิดพลาดเล็กน้อย