Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tìm số thứ N có tổng chữ số chẵn bằng C++


Tìm số thứ n (1-based) có tổng các chữ số là số chẵn. 5 số đầu: 2, 4, 6, 8, 11. Ví dụ: n=5 → 11, n=12 → 24.

Cách vét cạn

Duyệt từ 1, kiểm tra tổng chữ số chẵn, đếm đến n. Chậm.

Cách hiệu quả O(1): Quy luật

Quan sát 20 số đầu: 2,4,6,8,11,13,15,17,19,20,22,24,26,28,31,33,35,37,39,40.

  • Nếu chữ số cuối của n ∈ [0,4] → kết quả = 2*n.
  • Nếu chữ số cuối của n ∈ [5,9] → kết quả = 2*n + 1.

Ví dụ

#include <bits/stdc++.h>
using namespace std;

int main() {
    long long n = 13, result;
    int last_digit = n % 10;
    if (last_digit >= 0 && last_digit <= 4) result = 2 * n;
    else result = 2 * n + 1;
    cout << "nth Number with even sum of digits: " << result;
    return 0;
}

Kết quả

nth Number with even sum of digits: 26

Kết luận

Tìm số thứ N có tổng chữ số chẵn bằng quy luật O(1): 2n hoặc 2n+1 tùy chữ số cuối của n. Code C++.