PAT乙級Java實現_1010. 一元多項式求導 _附詳細解題註釋_10

1010. 一元多項式求導 (25)

時間限制
400 ms
內存限制
65536 kB
代碼長度限制
8000 B
判題程序
Standard

設計函數求一元多項式的導數。(注: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());//去除字符串最後的空格並輸出。
	}
}

發佈了52 篇原創文章 · 獲贊 47 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章