1. 程式人生 > 其它 >PAT乙級1010

PAT乙級1010

技術標籤:PAT乙級演算法

1010 一元多項式求導

設計函式求一元多項式的導數。(注:xn(n為整數)的一階導數為nx​n-1。)

輸入格式:
以指數遞降方式輸入多項式非零項係數和指數(絕對值均為不超過 1000 的整數)。數字間以空格分隔。

輸出格式:
以與輸入相同的格式輸出導數多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。注意“零多項式”的指數和係數都是 0,但是表示為 0 0。

輸入樣例:
3 4 -5 2 6 1 -2 0

輸出樣例:
12 3 -10 1 6 0

要點:

  1. 初始結果輸出,因為末尾不能有空格,所以肯定不是僅一個迴圈就能讓結果格式符合要求。並且只能靠檔案結束符判斷輸入結束,這意味著很難找到最後一對資料不讓其輸出空格,所以要從開頭下手,題目給出的多項式都是最簡的,初始化很容易進行,a空b 空a空b 空a空b …
    ,這種形式就可以了,先初始,再迴圈。
  2. 形成正確的邏輯:
    如果第一對資料不是常數項,輸出a空b,進入迴圈即可。
    否則,看是否有第二對輸入,如果有,輸出此對資料的a空b,再進入迴圈即可。如果沒有,說明結果是零多項式,輸出“0 0”。

解題程式碼:

#include<iostream>
using namespace std;

int main()
{
    int a, b;
    if((cin>>a>>b) && b) {cout << a*b << ' ' << b-1;}
    else {
        if
(cin>>a>>b) {cout << a*b << ' ' << b-1;} else {cout << "0 0";} } while(cin>>a>>b) { if(b) {cout << ' ' << a*b << ' ' << b-1;} } return 0; }