PTA1010一元多项式求导C#Java版
Java版:
import java.util.Scanner;public class Main { public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String in = sc.nextLine();
String array[] = in.split("\\s+"); int sum= array.length; int out[] = new int[sum];
for(int h=0;h<sum;h=h+1) { out[h]=Integer.parseInt(array[h]);
}
String outString = "";
for(int i = 0;i<sum;i=i+2) { if(out[i]==0&&out[i+1]==0) {
outString =outString +0+" "+0+" ";
} if(out[i]!=0&&out[i+1]!=0) {
outString = outString+out[i]*out[i+1]+" "+(out[i+1]-1)+" ";
}
} if(outString=="") {
outString = outString +"0 0";
} System.out.print(outString.trim());
}
}
C#版:
using System;
using System.Collections.Generic;
namespace _1010
{
class Program
{
static void Main(string[] args)
{
string strIn = Console.ReadLine();
// var strArray = strIn.Split(' ',StringSplitOptions.RemoveEmptyEntries);
var strArray = strIn.Split(' ');
// List<String> listStr = new List<string>(strArray);
String strOut = string.Empty;
List<String> listStrCopy = new List<string>();
foreach (var item in strArray)
{
if (item!="")
{
listStrCopy.Add(item);
}
}
for (int i = 0; i < listStrCopy.Count; i += 2)
{
int befor = int.Parse(listStrCopy[i]);
int after = int.Parse(listStrCopy[i + 1]);
if (befor == 0 && after == 0)
{
strOut += "0 0" + " ";
continue;
}
if (befor != 0 && after != 0)
{
strOut += befor * after + " " + (after - 1) + " ";
}
if (strOut == "")
{
strOut += "0 0 ";
}
}
//strOut = strOut.Substring(0, strOut.Length - 1);
strOut = strOut.Trim();
Console.WriteLine(strOut);
}
}
}
上述JAVA版来源于网络(抱歉,链接贴上会没了……)
C#版为小子所写,由于PTA在解析C#程序时总是出错,于是就在网上看了下他人写的版本,发现自己的没什么问题……但由于PTA不能解析: var strArray = strIn.Split(' ',StringSplitOptions.RemoveEmptyEntries);
于是不得不用一个for each来搞定。
题意的理解也很关键,给出的说明和示例,小子开始完全没看明白,怪我语文差了……
设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为nxn−1。)
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。
输入样例:
2 0
输出样例:
-10 1
以下为个人解题时理解,如下:
3 4 3是系数,4是指数
6 1 6是系数,1是指数
12 3 为输入(3 4)所计算值
6 0 为输入6 1所计算值
明白上述之后,要求的输入输出就好办了……
1.系数与指数都为0时,需要输出 “0 0”
2.系数与指数都不为0,需要按求导规则,计算出系数与指数,并输出
3.系数与指数有一个为0时,按示导规则,无输出
4.输入中要避免出现多个空格,若出现多个空格,程序要能识别并排除,这就比较坑了,因为题意中并没有相关要求。
赞 (0)
