1. 程式人生 > 其它 >Basic Level ----- 1010 一元多項式求導 (25分)

Basic Level ----- 1010 一元多項式求導 (25分)

技術標籤: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

華點

  1. 把輸入樣例一個個接收到陣列中,遇到’\n’結束;
  2. 遇到只輸入了一對數字,且指數為0,則直接輸出<0 0>
  3. 寫一個for迴圈,每次+2,輸出 <係數*指數> 和 <指數-1>;
  4. 遇到<指數-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; }