这是一个程序,用于确定数字序列是否与数学公式a [n + 1] = a [n] * b + c匹配,适用于整数范围内b和c的任意组合-9 :9
import java.util.Scanner;
public class Nastaord{
private static int[] lasTal(){
int[] tallista; //Det vi ska ha talföljden i
int i = 0; //räknare för tallista
while(true){
System.out.print("Ange tal, eller tryck enter om du är klar: ");
int nytt_tal = scanner.nextLine();
if(nytt_tal == ""){
return tallista;}
tallista[i] = nytt_tal;
i++;
}
}
private static boolean bcFinns(int[] tallista){
boolean OK = true;
for(int b = -9; b <= 9; b++){
for(int c = -9; c <= 9; c++){
for(int i = tallista.length; i > 0;i--){
OK = tallista[i] == tallista[i-1]*b+c;
if(OK == false){
break;}
}
if(OK == true){
public int b = b;
public int c = c;
return true;}
}
}
return false;
}
public static void main(String[] args){
boolean OK = bcFinns(lasTal());
if (OK == true){
System.out.print(tallista[tallista.length-1]*b+c);
}
if (OK == false){
System.out.print("No");
}
}
}
该计划在主要层面上有效。唯一的问题是,一旦找到序列,我就不知道如何为序列保存正确的数字b和c。我尝试创建两个公共变量,以便我可以在main方法中访问它们,但是我收到以下错误:
Nastaord.java:30: error: illegal start of expression
public int b = b;
^
Nastaord.java:31: error: illegal start of expression
public int c = c;
你能帮助我以某种方式保存这些变量b和c吗?
答案 0 :(得分:0)
public class Nastaord{
public static int bFinal,cFinal;
然后是:
bFinal = b;
cFinal = c;