天天看點

PAT乙級—1010. 一進制多項式求導 (25)-native

設計函數求一進制多項式的導數。(注:xn(n為整數)的一階導數為n*xn-1。)

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

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

輸入樣例:

3 4 -5 2 6 1 -2 0

輸出樣例:

12 3 -10 1 6 0

思路:首先輸入任意個偶數個數,然後判斷每相鄰的的兩個數必須都不為0才可以輸出,因為若有一個為0,則該項就是零項,就不應該輸出。并設定一個标志位,若沒有一個符合輸出條件,則為零多項式,則輸出0 0.

#include<iostream>
#include<cstring> 
using namespace std; 
int main()
{
    int flag=; 
    int a[]={};
    int i=;
    while(cin>>a[i])
    {
        i++;
        if(getchar()==) break;    //輸入回車則終止輸入 
    }
    int temp=;
    for(int j=;j<i;j+=)
    {
        if(a[j+]!=&&a[j]!=) 
        {
            temp++;
            a[j]=a[j]*a[j+];
            a[j+]--;
            if(temp!=) cout<<" ";
            cout<<a[j]<<" "<<a[j+];
            flag=;
        }
    }
    if(flag==) cout<<"0 0"<<endl;
    return ;
}
           

題目連結:

https://www.patest.cn/contests/pat-b-practise/1010