首页 > 专题系列 > Java解POJ > POJ 2583 Series Determination [解题报告] Java
2013
11-11

POJ 2583 Series Determination [解题报告] Java

Series Determination

问题描述 :

Boudreaux and Thibodeaux aren’t very good at math, so they need you to write a program that can determine the second degree polynomial used to generate a given sequence of three integers. As proof that you’ve figured out the polynomial, they want your program to print out the next 3 integers in the sequence.

You know that each sequence is generated by a polynomial of the form f(x) = Ax2 + Bx + C, where A, B, and C are integers in the range (-103 <= (A, B, C) <= 103). You are given the values f(0), f(1), f(2) and are to determine the values f(3), f(4), f(5).

输入:

Input to this problem will consist of a (non-empty) series of up to 100 data sets. Each data set will be formatted according to the following description, and there will be no blank lines separating data sets.

Each data set consists of a single line containing the space-separated integer values of the polynomial evaluated at 0, 1, and 2 (in that order). These values will be in the range (-103 <= (f(0), f(1), f(2)) <= 103).

输出:

For each data set, there will be exactly one line of output containing the space-separated integer values of the polynomial evaluated at 3, 4, and 5 (in that order). These values will be in the range (-104 <= (f(3), f(4), f(5)) <= 104).

样例输入:

0 0 0
1 1 1
1 2 3
0 1 4
0 2 8

样例输出:

0 0 0
1 1 1
4 5 6
9 16 25
18 32 50

解题代码:

import java.io.BufferedInputStream;   
import java.util.Scanner;   
  
/**  
 *poj2583 easy  
 * @author NC  
 */  
public class Main {   
  
    public static void main(String[] args) {   
        Scanner scan = new Scanner(new BufferedInputStream(System.in));   
        while (scan.hasNext()) {   
            int f0 = scan.nextInt();   
            int f1 = scan.nextInt();   
            int f2 = scan.nextInt();   
            int c = f0;   
            int a = (f2 - 2 * f1 + f0) / 2;   
            int b = f1 - c - a;   
            int f3 = a * 9 + b * 3 + c;   
            int f4 = a * 16 + b * 4 + c;   
            int f5 = a * 25 + b * 5 + c;   
            System.out.println(f3 + " " + f4 + " " + f5);   
        }   
  
    }   
}