숫자 n이 있다고 가정합니다. 숫자가 삼각수인지 아닌지 확인해야 합니다. 알다시피, n개의 점(또는 공)을 층으로 배열하여 정삼각형을 형성할 수 있다면 n은 삼각형 숫자입니다.
따라서 입력이 n =10과 같으면 출력이 True가 됩니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
for initialize i := 1, when i <= n, update (increase i by 1), do: if i * (i + 1) is same as 2 * n, then: return true return false
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <bits/stdc++.h> using namespace std; bool solve(int n){ for (int i = 1; i <= n; i++){ if (i * (i + 1) == 2 * n){ return true; } } return false; } int main(){ int n = 10; cout << solve(n) << endl; }
입력
10
출력
1