【发布时间】:2015-11-24 23:04:20
【问题描述】:
我有三个排序的数字。我只能更改最后一个或第一个数字以获取其他两个之间的数字。我最多可以更改多少?
例如:1,2,5 Ist 变化将是 2,3,5 这里 1 改为 2 到 5 之间的数字 第二次更改将是 3,4,5 所以输出是2。 谁能告诉我比下面更好的实现?
void printCount() {
int a[] = {0,0,0};
Scanner in=new Scanner(System.in);
System.out.println("Enter the input");
int count1=in.nextInt();
for (int j=0;j<count1;j++){
for(int i=0;i<3;i++){
a[i]=in.nextInt();
}
int count=0;
while(true){
if(a[2]==(a[1]+1) && a[1] ==(a[0]+1)){
break;
}
if((a[1]-a[0]) >a[2]-a[1]){
a[2]=a[0]+1;
}
else{
a[0]=a[1]+1;
}
count++;
Arrays.sort(a);
}
System.out.println(count);
}
}
【问题讨论】:
-
这里没有实际问题。最好在 codereview.stackexchange.com 上进行代码审查
标签: java arrays data-structures