Trong phần này, chúng ta sẽ thấy, liệu một số có thể được biểu diễn dưới dạng các số liên tiếp trên cây hay không. Giả sử một số là 27. Số này có thể được biểu diễn dưới dạng 8 + 9 + 10.
Điều này có thể được giải quyết theo hai cách tiếp cận khác nhau. Cách tiếp cận đầu tiên là cách tiếp cận Naïve. Theo cách tiếp cận đó, chúng ta phải kiểm tra i + (i + 1) + (i + 2) có giống với số hay không. Một cách tiếp cận hiệu quả khác là kiểm tra xem số đó có chia hết cho 3 hay không. Giả sử một số x có thể được biểu diễn bởi ba số 1 liên tiếp, khi đó x =(y - 1) + y + (y + 1) =3y. Vậy số phải chia hết cho 3.
Ví dụ
#include <iostream> using namespace std; bool hasThreeNums(int n) { if(n % 3 == 0){ return true; } return false; } int main() { int num = 27; if(hasThreeNums(num)){ cout << "Can be represented"; }else{ cout << "Cannot be presented"; } }
Đầu ra
Can be represented