수열의 합 1024
2022. 12. 21. 13:19ㆍboj
https://www.acmicpc.net/problem/1024
[1024번: 수열의 합
첫째 줄에 N과 L이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이고, L은 2보다 크거나 같고, 100보다 작거나 같은 자연수이다.
www.acmicpc.net](https://www.acmicpc.net/problem/1024)
문제를 읽어보면 결국 시그마를 아느냐 에 관련된 내용이였다 .
처음 받은 length로 시그마 결과가 가능한지 안한지에 대한
판별식을 만들고
토탈 length가 100 보다 크거나 초기값이 음수가 나오게 되면
-1을 리턴하게 하고
같은 시그마가 가능하고, 결과값이 동일하다면, 수열을 출력하게 했다.
#include <iostream>
using namespace std;
int sigma(int sum, int l)
{
return ((2 * sum / l) - l + 1) / 2;
}
void solve(int n, int l)
{
if (l > 100)
{
cout << "-1";
return ;
}
int start = sigma(n, l);
int i;
if (start < 0)
{
cout << "-1";
return ;
}
if ((start + start + l - 1) * l == n * 2)
{
for (i = 0; i < l; ++i) {
cout << start + i;
if (i != l - 1)
cout << " " ;
}
} else {
solve(n, l + 1);
}
}
int main()
{
int n, l;
cin >> n >> l;
solve(n ,l);
return 0;
}
'boj' 카테고리의 다른 글
1697 숨바꼭질. (0) | 2022.12.21 |
---|---|
1021 회전하는 큐. (0) | 2022.12.21 |
1012 유기농 배추. (0) | 2022.12.20 |
1010 다리놓기 (0) | 2022.12.19 |
눈치우기 (boj 26215) (0) | 2022.12.19 |