Basic Level ----- 1010 一元多項式求導 (25分)
阿新 • • 發佈:2020-12-22
技術標籤:PAT Basic Level演算法
前言
環境:C++(g++6.5.0)
題目
輸入格式:
以指數遞降方式輸入多項式非零項係數和指數(絕對值均為不超過 1000 的整數)。數字間以空格分隔。
輸出格式:
以與輸入相同的格式輸出導數多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。注意“零多項式”的指數和係數都是 0,但是表示為 0 0。
輸入樣例:
3 4 -5 2 6 1 -2 0
輸出樣例:
12 3 -10 1 6 0
華點
- 把輸入樣例一個個接收到陣列中,遇到’\n’結束;
- 遇到只輸入了一對數字,且指數為0,則直接輸出<0 0>
- 寫一個for迴圈,每次+2,輸出 <係數*指數> 和 <指數-1>;
- 遇到<指數-1>等於-1的情況,則不輸出該數字對
程式碼
/*1010 一元多項式求導 (25分)*/
#include <iostream>
using namespace std;
int main()
{
int arr[1001];
int i=0;
char ch;
while(cin>>arr[i])
{
cin.get(ch);
i++; //結束後多1
if(ch=='\n') break;
}
if(i==2&&arr[i-1]==0)
{
cout<<"0 0"<< endl;
}
else
{
int flag=0;
for(int k=0;k<i;k+=2)
{
int l=arr[k]*arr[k+1]; //係數
int r=arr[k+1]-1;
if(r!=-1)
{
if(flag==0)
{
flag++;
cout<<l<<" "<<r;
}
else
cout<<" "<<l<<" "<< r;
}
}
}
return 0;
}