算术级数3

时间:2019-11-03 12:36:40

标签: java math

它是算术级数3。输出寻找下2个项。例如,输入为:1、4、11、24。寻找下两个项,即45和76。如何解决?

package Function;

import java.util.Scanner;
/**
 *
 * @author Lenovo
 */

public class ArithmeticProgression {

public static void main(String[] args){        
        int many;

        Scanner keyboard=new Scanner(System.in);
        System.out.print("Put many term: ");
        many= keyboard.nextInt();
        int term[]= new int [many];

        int n= 0;

        for(int z=0; z<many; z++){
            n= n+1;
            System.out.format("%d term"+ " is: ", n);
            term[z] = keyboard.nextInt();
        }

        System.out.print("enter the next many terms: ");
        int range= keyboard.nextInt();

        int term2[] = new int[range+many];

        for(int i = 0; i < many; i++){
            term2[i] = term[i];
        }

        int b3= term2[many-1]-term2[many-2];
        int b2= term2[many-2]-term2[many-3];
        int b1= term2[many-3]-term2[many-4];

        int c2= b3-b2;
        int c1= b2-b1;

        int d= c2-c1;

        for(int q=0; q<range; q++){

            b3= term2[many-1]-term2[many-2];
            b2= term2[many-2]-term2[many-3];
            b1= term2[many-3]-term2[many-4];

            c2= b3-b2;
            c1= b2-b1;

            d= c2-c1;

            int result= term2[many-1]+b3+c2+d;

            System.out.println(result);
            many++;     

        }
    }
}

1 个答案:

答案 0 :(得分:0)

在遍历q的过程中,您忘了在每一步都更新term2数组:

    for(int q=0; q<range; q++){

        b3= term2[many-1]-term2[many-2];
        b2= term2[many-2]-term2[many-3];
        b1= term2[many-3]-term2[many-4];

        c2= b3-b2;
        c1= b2-b1;

        d= c2-c1;

        int result= term2[many-1]+b3+c2+d;

        System.out.println(result);

        term2[many] = result;  // you forgot this update
        many++;     
    }

这将生成列表1,4,11,24,45,76,119,176,249,340,451,...