7-22 一元多项式求导
设计函数求一元多项式的导数。
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
JAVA
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);// 接收输入
String[] num = scanner.nextLine().split("\\s+");//不止一个空格的时候
// 以空格为界保存到数组
String out = "";// 最后要输出的字符串
for (int i = 0; i < num.length; i += 2) {
int xS = Integer.parseInt(num[i]);// 输入项的系数
int zS = Integer.parseInt(num[i + 1]);// 输入项的指数
int resXS = xS * zS;// 导数项的系数
int resZS = zS - 1;// 导数项的指数
if (i == 0 && zS == 0)//指数为0
{
out = "0 0";
break;
}
if (resXS == 0)// 如果是导数项为0,不输出
continue;
out = out + resXS + " " + resZS + " ";// 将要输出的字符串保存起来
}
System.out.print(out.trim());// 去除字符串最后的空格并输出。
}
}
7-23 求链式线性表的倒数第K项
给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。
输入格式:
输入首先给出一个正整数K,随后是若干非负整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。
输出格式:
输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL
。
输入样例:
4 1 2 3 4 5 6 7 8 9 0 -1
输出样例:
7
java代码
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader buf=new BufferedReader(new InputStreamReader(System.in));
String []a=buf.readLine().split("\\s+");
int k=Integer.parseInt(a[0]);
if (k>a.length-2) {
System.out.println("NULL");
}
for(int i=a.length-1;k>=0;k--) {
if (k==0) {
int res=Integer.parseInt(a[i]);
System.out.println(res);
}
i--;
}
}
}