1010. 一元多項式求導 (25)
設計函數求一元多項式的導數。(注:xn(n爲整數)的一階導數爲n*xn-1。)
輸入格式:以指數遞降方式輸入多項式非零項係數和指數(絕對值均爲不超過1000的整數)。數字間以空格分隔。
輸出格式:以與輸入相同的格式輸出導數多項式非零項的係數和指數。數字間以空格分隔,但結尾不能有多餘空格。注意“零多項式”的指數和係數都是0,但是表示爲“0 0”。
輸入樣例:3 4 -5 2 6 1 -2 0
輸出樣例:12 3 -10 1 6 0
----------------------------------------------------------------------------------------------------
/*思路:把輸入的字符串用trim()函數去掉頭尾空格,
* 然後用split(" ")將輸入的字符串以空格爲界分成字符子串,保存到字符串數組。
* 題不難,但有個坑。就是輸入的字符串中間的空格不止一個,得用split("\\s+")
* "\\s+"是正則表達式形式,\\轉義成\ ,\與s組成\s,表示空格,+表示至少1個空格。
* */
import java.util.Scanner;
public class PAT_B_1010
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);//接收輸入
String[] num = in.nextLine().trim().split("\\s+");
//將輸入數字去掉頭尾空格並以空格爲界保存到字符串數組
String out = "";//最後要輸出的字符串
for(int i = 0; i < num.length; i+=2 )
{
int xiShu = Integer.parseInt(num[i]);//輸入項的係數
int zhiShu = Integer.parseInt(num[i+1]);//輸入項的指數
int xiShuD = xiShu * zhiShu;//導數項的係數
int zhiShuD = zhiShu - 1;//導數項的指數
if(i == 0 && zhiShu == 0)//“零多項式”的指數和係數都是0,但是表示爲“0 0”。
{
out = "0 0";
break;
}
if(xiShuD == 0)//如果是導數項爲0,不輸出
continue;
out = out + xiShuD + " " + zhiShuD + " ";//將要輸出的字符串保存起來
}
System.out.print(out.trim());//去除字符串最後的空格並輸出。
}
}