它是算术级数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++;
}
}
}
答案 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,...