我试图这样做: Question
我在for循环中遇到错误: for(int i = b,int j = 0; i <2 * b,j
我的方法是将所有差异存储在一个数组中,我们通过减去初始值,最后一个值和分区得到它。
出了什么问题以及替代方法是什么?
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
/* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */
int a, b;
Scanner in = new Scanner(System.in);
a= in.nextInt();
b= in.nextInt();
in.nextLine();
int[] ar = new int[b];
for(int i=0;i<b;i++)
{
ar[i]= in.nextInt();
}
int[] ar2 = new int[a];
// I m trying to get the values which can be obtained from each partition
for(int i=0;i<b;i++)
{
ar2[i] = a - ar[i];
}
for(int i=b,int j=0;i< 2*b, j<b; i++, j++)
{
ar2[i] = ar[j];
}
for(int i=0;i<a;i++)
{
System.out.print(ar2[i]+" ");
}
}
}
答案 0 :(得分:1)
这是您收到的编译错误吗? 这个特定的行不遵循Java语法:
for(int i=b,int j=0;i< 2*b, j<b; i++, j++)
例如,你在for循环中有2个int声明是不可能的:
int i=b,int j=0;
必须重写为:
int i=b, j=0;
在条件部分,无法设置以逗号分隔的多个条件。你可以做的是使用逻辑运算符来组合2个条件表达式 - 使用||或&amp;&amp;
i< 2*b, j<b;
必须重写为:
for(int i=b, j=0;i< 2*b && j<b; i++, j++)
或者这个:
for(int i=b, j=0;i< 2*b || j<b; i++, j++)