题目:http://pat.zju.edu.cn/contests/pat-b-practise/1010
设计函数求一元多项式的导数。
输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
输入样例:3 4 -5 2 6 1 -2 0输出样例:
12 3 -10 1 6 0
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Diagnostics; namespace PAT_1010 { class Program { static void Main(string[] args) { string input = Console.ReadLine(); string[] inputs = input.Split(' '); int[] data = new int[inputs.Length]; for (int i = 0; i < inputs.Length; i++) { data[i] = Int32.Parse(inputs[i]); } data = Derive(data); PrintData(data); Console.ReadKey(); } private static int[] Derive(int[] data) { int i = 0, j = 0; int[] derive_data = new int[data.Length]; if (data.Length % 2 == 0) { int count = data.Length / 2; for (i = 0,j=0; i < count; i++) { if (data[2 * i]*data[2*i+1]!= 0) { derive_data[2 * j] = data[2 * i] * data[2 * i + 1]; derive_data[2 * j + 1] = data[2 * i + 1] - 1; j++; } } data = new int[2 * j]; Array.Copy(derive_data, data, 2 * j); return data; } else { throw new Exception("输入数据不对!"); } } /// <summary> /// 打印数组 /// </summary> /// <param name="data"></param> private static void PrintData(int[] data) { if (data.Length > 0) { for (int i = 0; i < data.Length - 1; i++) { Console.Write("{0} ", data[i]); } Console.Write(data[data.Length - 1]); } } } }
深坑啊!怎么提交就是不过,参考别人的代码,一堆错误似乎过了,呵呵。