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++.