이 섹션에서는 숫자가 트리 연속 숫자로 표시될 수 있는지 여부를 확인할 것입니다. 숫자가 27이라고 가정합니다. 이것은 8 + 9 + 10으로 나타낼 수 있습니다.
이것은 두 가지 다른 접근 방식으로 해결할 수 있습니다. 첫 번째 접근 방식은 Naive 접근 방식입니다. 그 접근 방식에서 우리는 i + (i + 1) + (i + 2)가 숫자와 같은지 확인해야 합니다. 또 다른 효율적인 접근 방식은 숫자가 3으로 나누어 떨어지는지 여부를 확인하는 것입니다. 숫자 x가 3개의 연속적인 1로 표현될 수 있다고 가정하면 x =(y - 1) + y + (y + 1) =3y가 됩니다. 따라서 숫자는 3의 배수여야 합니다.
예시
#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"; } }
출력
Can be represented