本文共 1539 字,大约阅读时间需要 5 分钟。
编写算法求一元多项式的值Pn(x)=∑i=0naixi的值Pn(x0)。
注意:不要使用内置的求幂函数,例如C中的pow()、Python中的**等
输入格式:第一行为一个整数n和一个浮点数x0。其中0≤n≤30,000,表示多项式次数;x0为多项式中的变量x的取值。 第二行为空格分割的n+1个浮点数,由高到低表示多项式中项的系数。
可以假设输入总是合法的。
输出格式:输出多项式的求值结果,保留三位小数,以换行结尾。
输入样例:例如:
3 1.0
1 2 3 4对应多项式为P(x)=x3+2x2+3x+4,自变量取值为x=1.0。
输出样例:输出为
10.000
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main{ public static void main(String args[]) throws IOException{ int n = Reader.nextInt(); double x = Reader.nextDouble(); double[] a = new double[n+1]; for(int i=0;i<=n;i++){ a[i] = Reader.nextDouble(); } double sum =0; int tiN = n; for (int j = 0; j <= tiN; j++) { sum +=pow(x, n--,a[j]); } System.out.printf("%.3f\n",sum); } public static double pow(double x, int n,double xiShu) { double d=Math.pow(x, n); return d*xiShu; }}class Reader { static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); static StringTokenizer tokenizer = new StringTokenizer(""); static String next() throws IOException { while ( ! tokenizer.hasMoreTokens() ) { tokenizer = new StringTokenizer(reader.readLine()); } return tokenizer.nextToken(); } static int nextInt() throws IOException { return Integer.parseInt(next()); } static double nextDouble() throws IOException { return Double.parseDouble( next() ); }}
转载地址:http://debdi.baihongyu.com/