내가 할 수 있는게 노가다 밖에 없어서 미안하다. 빨리 숏코딩 배울게요
ㅠ


중첩 조건문으로 억지인 것을 알면서도 코드를 작성했다. 다른 방법이 있을까?
다시 생각해보니 줄의 번지수를 구하고 홀수 줄, 짝수줄을 나누어 생각하는 논리 자체는 맞았다. 하지만 줄의 번지 수를 구한 후 중첩 조건문을 쓸 필요없이 처음부터 홀수인 경우와 짝수인 경우로 나누면 되었다.
#include<iostream>
using namespace std;
int main(){
int n, line=1, sum=1, a, b;
cin>>n;
while(n>line){
n-=line;
sum++;
line++;//이때 line은 다음 줄의 분모와 분자의 합-1이 된다.
}
if(line%2==0){
cout<<n<<'/'<<line-n+1;
}
else{
cout<<line-n+1<<'/'<<n;
}
}
코드 최종본. 1/1에 대한 예외처리를 어떻게 할까 고민했는데 while의 조건에서부터 걸러낼 수 있었다.
'알고리즘' 카테고리의 다른 글
| Boj 1920 c++ 수 찾기(해시연습) (0) | 2025.05.24 |
|---|---|
| Boj 32201 c++ 눈사람(해시) (0) | 2025.05.24 |
| Boj 11659 c++ 구간 합 구하기 4 (0) | 2025.05.22 |
| Boj 2531 c++ 회전초밥 (0) | 2025.05.22 |
| Boj 1644 c++ 소수의 연속합 (0) | 2025.05.21 |