Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 연속된 세 정수의 합으로 숫자를 쓸 수 있는지 확인

<시간/>

이 섹션에서는 숫자가 트리 연속 숫자로 표시될 수 있는지 여부를 확인할 것입니다. 숫자가 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