Computer >> Máy Tính >  >> Lập trình >> C ++

Số lịch sự thứ n trong C ++

Một số lịch sự là một số dương có thể được viết dưới dạng tổng của 2 hoặc nhiều số dương liên tiếp.

Dãy số lịch sự là

3 5 6 7 9 10 11 12 13 14 ...

Tồn tại một công thức để tìm số lịch sự thứ n. Công thức là n + log 2 (n + log 2 (N)). Nhật ký mặc định tính toán với cơ sở e. Chúng ta cần tính toán bằng cơ số 2. Chia kết quả log mặc định với log (2) để nhận giá trị của log với cơ số e.

Thuật toán

  • Thuật toán cho số lịch sự thứ n rất đơn giản.
  • Khởi tạo số N.
  • Sử dụng công thức trên để tính số lịch sự thứ n.
  • Đảm bảo tăng giá trị của n lên 1 trước khi tính số chính xác thứ n.

Thực hiện

Sau đây là cách thực hiện thuật toán trên trong C ++

#include <bits/stdc++.h>
using namespace std;
double getNthPoliteNumber(double n) {
   n += 1;
   return n + (log((n + (log(n) / log(2.0))))) / log(2.0);
}
int main() {
   double n = 10;
   cout << (int)getNthPoliteNumber(n) << endl;
   return 0;
}

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

14