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)