다항함수의 적분 C++ - 백준 17214

김관중·2024년 1월 31일
0

백준

목록 보기
36/129

https://www.acmicpc.net/problem/17214

낮은 정답률을 가지고 있는 문제, 이게 왜 골드 문제지 하고 제출했다가

많이 실수 할 수 있는 문제이다.

문제 풀이

일단 경우의 수는

  1. 일차항+상수항
  2. 일차항
  3. 상수항

이렇게 3가지가 있는데 1차항과 상수항을 적분했을때 계수의 절댓값이 1이 나올때의 처리와,

상수항이 0만 있을때를 고려해서 코드를 작성해야 한다.

코드는 다음과 같다.

#include <bits/stdc++.h>
using namespace std;

string s;
string n("");
bool ze=false;
bool twox=false;

int main(){
    cin >> s;
    for(int i=0;i<s.length();i++){
        if(s[i]=='x'){
            if(stoi(n)/2==-1) cout << '-';
            else if(stoi(n)/2!=1) cout << stoi(n)/2;
            cout << "xx";
            n="";
            ze=false;
            twox=true;
        }
        else if(n==""){
            n=s[i];
            ze=true;
        }
        else n+=s[i];
    }
    if(ze && abs(stoi(n))!=0){
        if(n=="+1") cout << "+";
        else if(n=="-1") cout << "-";
        else if(n!="1") cout << n;
        cout << "x+W";
    }
    else if(twox) cout << "+W";
    else cout << 'W';
}
profile
꾸준히 학습하기

0개의 댓글

관련 채용 정보