iT邦幫忙

0

[一天至少一題直到ICPC開賽007]解題: Polynomial Showdown(12/16)

  • 分享至 

  • xImage
  •  

Polynomial Showdown

題目連結

最近在準備段考,題目會寫簡單一點的


社團招生

然後社團很缺經驗豐富的大佬,如果您願意加入並指導我們,以後會花社團經費(學校提供)來請您授課
最後,在這個社團里保證不用花任何錢(學校會資助)
點我進群組


解題

  1. 只是普通的條件,有幾點要注意

    1. 第一個數字是負數要將負號與數字貼在一起不可分開或不輸出
    2. -1是開頭的也要關照一下
    3. 整串數字只有一個0也要注意
  2. 也可以用cin.eof()來判斷要不要結束

code

#include <iostream>
#include <cmath>
#include <vector>
#include <string>
#include <map>
#include <queue>

using namespace std;
/*
    題目:Polynomial Showdown
    題目連結:https://cpe.cse.nsysu.edu.tw/cpe/file/attendance/problemPdf/392.pdf
    
    解題者:神里綾華的狗
*/


//會重複,故使用含式
void printx(int x, int i)
{
    if (i == 0)
    {
        cout << x;
    }
    else if (x == 1)
    {
        cout << "x";
    }
    else
    {
        cout << x << "x";
    }

    if (i > 1)
    {
        cout << "^" << i;
    }
}

int main(int argc, char const *argv[])
{

    while (true)
    {
        int x;
        int flag = 0;
        //數字
        queue<int> q;
        //位數
        queue<int> count;
        for (int i = 1; i < 10; i++)
        {
            if (cin >> x)
            {
                if (x != 0)
                {
                    q.push(x);
                    count.push(9 - i);
                }
            }
            //efo 結束
            else
            {
                return 0;
            }
        }
        //以防輸入只有一個0
        if (q.size() == 0)
        {
            cout << 0 << endl;
            continue;
        }
        //第一位是負數
        if (q.front() < 0)
            cout << "-";

        //印出第一位
        printx(abs(q.front()), count.front());
        q.pop();
        count.pop();

        //從第二位開始印
        while (!q.empty())
        {
            if (q.front() > 0)
            {
                cout << " + ";
                printx(q.front(), count.front());
            }
            else if (q.front() < 0)
            {
                cout << " - ";

                printx(abs(q.front()), count.front());
            }
            q.pop();
            count.pop();
        }

        cout << endl;
    }

    return 0;
}

🚀 if ( true ) drinkCoffee(); 招生中 🚀

關於我們:
我們是一個充滿熱情、致力於提升程式設計和參與資料競賽水平的群組。無論你是新手還是大師,只要對打程式、參與資料競賽充滿熱情,我們都歡迎你的加入!

我們的目標:
我們的目標是一同努力,提升在資料競賽領域的技能。我們將一起參加各種比賽,包括但不限於ICPC,挑戰自我極限,並分享學習經驗。

為什麼加入我們?

  • 🧠 學習機會:與有經驗的大佬交流,共同解決難題。
  • 🌐 資源分享:分享最新的比賽資訊、練習題、教學資源。
  • 💡 專業指導:有專業人士提供指導,助你更進一步。
  • 🤝 社群互助:建立緊密的社群,互相鼓勵,共同進步。

誰適合加入?

  • 👶 新手:如果你是初學者,我們樂於協助你踏上程式設計的旅程。
  • 🧑‍💻 資深者:如果你已經有一定經驗,歡迎分享你的知識,共同進步。

群組連結


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言