Java 如何检查算术序列
我想写一个程序,在数组中寻找三个数字,给出一个长度为三的算术序列——三个数字a、b和c形成一个长度为3的算术序列,如果:b-a=c-bJava 如何检查算术序列,java,Java,我想写一个程序,在数组中寻找三个数字,给出一个长度为三的算术序列——三个数字a、b和c形成一个长度为3的算术序列,如果:b-a=c-b public static void main (String[] args) { int [] a = new int [args.length - 1];W for (int i = 0; i<a.length; i++) { a[i] = Integer.parseInt(args[i+1]); }
public static void main (String[] args) {
int [] a = new int [args.length - 1];W
for (int i = 0; i<a.length; i++) {
a[i] = Integer.parseInt(args[i+1]);
}
for (int i = 0; i < a.length - 2; i++) {
for (int j = i+1; j < a.length - 1; j++) {
int b = a[i];
for (int k = j + 1; k < a.length; k++) {
int c = a[k];
if (b - a[i] == c - b) {
System.out.println("yes");
break;
}
}
}
}
}
}
问题是,即使在应该打印“是”的时候,代码也不会打印“是”,如果出现这种情况,代码永远不会进入命令。我想我在为b-a=c-b编写数学命令时遇到了问题
public static void main (String[] args) {
int [] a = new int [args.length - 1];W
for (int i = 0; i<a.length; i++) {
a[i] = Integer.parseInt(args[i+1]);
}
for (int i = 0; i < a.length - 2; i++) {
for (int j = i+1; j < a.length - 1; j++) {
int b = a[i];
for (int k = j + 1; k < a.length; k++) {
int c = a[k];
if (b - a[i] == c - b) {
System.out.println("yes");
break;
}
}
}
}
}
}
publicstaticvoidmain(字符串[]args){
int[]a=新的int[args.length-1];W
对于(int i=0;i我想这就是你想要的:
变化:
首先对数组进行排序
当你从最里面的循环中断开时,你
还必须断开所有外部环路(检查下面的代码)
Arrays.sort(a);
外部环路:
对于(int i=0;i
更新:
由于以下代码,您缺少数组的第一个元素:
int [] a = new int [args.length - 1]
for (int i = 0; i<a.length; i++) {
a[i] = Integer.parseInt(args[i+1]);
}
int[]a=新的int[args.length-1]
对于(int i=0;i而言,这是有效的:
public static void main(String[] args) {
int [] a =new int [new Integer(args.length)];
for (int i = 0; i<a.length; i++) {
a[i] = Integer.parseInt(args[i]);
}
for(int j=0;j<a.length;j++){
if(j+2<a.length){
if(a[j+1]-a[j] ==a[j+2] - a[j+1])
System.out.println("Yes........." +a[j] +""+ a[j+1] +"" +a[j+2]);
}
}
}
publicstaticvoidmain(字符串[]args){
int[]a=新int[新整数(参数长度)];
对于(int i=0;i)和什么问题?运行它时会发生什么?你能提供一些示例输入和输出吗?另外,args[i+1]
将给出ArrayOutOfBoundsException
当i
是a.length-1
时。这是一个家庭作业吗?“2 3 4 6”将给出“是”当它为“否”时,除非你只为三个数字编写程序:3它应该为“是”,因为他正在寻找三个构成符号序列的数字。啊,对不起,我以为她在寻找整个数组是一个算术序列谢谢。还有一个小问题。对于输入:2,3,4,6,我按顺序打印循环中的每个字母查看它检查的内容:“for(int i=0;ipublic static void main(String[] args) {
int [] a =new int [new Integer(args.length)];
for (int i = 0; i<a.length; i++) {
a[i] = Integer.parseInt(args[i]);
}
for(int j=0;j<a.length;j++){
if(j+2<a.length){
if(a[j+1]-a[j] ==a[j+2] - a[j+1])
System.out.println("Yes........." +a[j] +""+ a[j+1] +"" +a[j+2]);
}
}
}