对输入的数要分四种情况讨论
- 系数为0,指数也为0
- 系数为0,但指数不为0
- 系数不为0,但指数为0
- 系数不为0,指数也不为0
在第1种情况下要输出“0 0”,即题目要求中的:注意“零多项式”的指数和系数都是 0,但是表示为 0 0。(原来它说的这个指数为0与系数为0都是指的输入的)
在第2、3种情况下不输出,因为题目中要求的是:输出导数多项式非零项的系数和指数
在第4种情况下正常输出
另外还要注意两点
- 输入格式中说“数字间以空格分隔”,这对用Java分割字符串的同学是一个大坑,要注意数字间可能不只有一个空格,在以后的题目中再看到这样的要求要注意。
- 当所有输入对应的所有输出没有时要输出“0 0”,如输入为“-2 0”,此时应该是什么也不输出,但必须要输出“0 0”才对。前边所有的都可以理解,这个真的不知道为什么,可以是出题人给大家出了个脑筋急转弯,另外我发现很多PTA的题目要求都像这个题一样,有点坑。
附上用Java实现的代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
String[] inputNumStr = in.nextLine().split("\\s+");
int[] inputNum = new int[inputNumStr.length]; //输入的数,存入数组中
for(int i = 0; i <= inputNumStr.length-1; i++)
{
inputNum[i] = Integer.parseInt(inputNumStr[i]);
}
List<Integer> list = new ArrayList<>(); //要输出的结果
int xiShuInput;
int zhiShuInput;
for(int i = 0; i <= inputNum.length-2; i += 2)
{
xiShuInput = inputNum[i];
zhiShuInput = inputNum[i+1];
if(xiShuInput==0 && zhiShuInput==0)
{
list.add(0);
list.add(0);
}
else if (xiShuInput==0 && zhiShuInput!=0)
{
//不输出
}
else if(xiShuInput!=0 && zhiShuInput==0)
{
//不输出
}
else if(xiShuInput!=0 && zhiShuInput!=0)
{
list.add(inputNum[i] * inputNum[i+1]);
list.add(inputNum[i+1] - 1);
}
}
if(list.size() == 0)
{
System.out.println("0 0");
}
else
{
for(int i = 0; i <= list.size()-1; i++)
{
System.out.print(list.get(i));
if(i != list.size()-1)
{
System.out.print(" ");
}
}
}
}
}