設計函數求一進制多項式的導數。(注: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