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

숫자 n의 가중치 분할 수를 계산하는 C++ 코드

<시간/>

숫자 n이 있다고 가정합니다. 우리는 n을 합이 n인 양의 정수의 증가하지 않는 시퀀스로 나눌 수 있습니다. 분할의 가중치는 분할에서 첫 번째 요소와 동일한 요소의 수입니다. 따라서 분할 [1,1,1,1,1]의 가중치는 5이고 분할 [5,5,3,3,3]의 가중치는 2이고 분할 [9]의 가중치는 1입니다. . 우리는 n개의 분할의 서로 다른 가중치의 수를 찾아야 합니다.

따라서 입력이 n =7과 같으면 가능한 가중치는 [7], [3, 3, 1], [2, 2, 2, 1], [1, 1, 1이기 때문에 출력은 4가 됩니다. , 1, 1, 1, 1]

단계

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

return (n / 2 + 1)

예시

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

#include <bits/stdc++.h>
using namespace std;
int solve(int n){
   return (n / 2 + 1);
}
int main(){
   int n = 7;
   cout << solve(n) << endl;
}

입력

7

출력

4