这样写输出后每行后出现大段空白
int j = 0;
for (int i = 1000;i<10000;i++){
int a = i%10;
int b = i/10%10;
int c = i/100%10;
int d = i/1000%10;
if ( a+c == b+d){
System.out.print(i + " ");
j++;
}
if (j%5==0){
System.out.println();
}
}
System.out.println(j);
像这样
**
但这样写就没问题**
int j = 0;
for (int i = 1000;i<10000;i++){
int a = i%10;
int b = i/10%10;
int c = i/100%10;
int d = i/1000%10;
if ( a+c == b+d){
System.out.print(i + " ");
j++;
if (j%5==0){
System.out.println();
}
}
求解惑
道理很简单,写在外面, a+c != b+d,同时j%5==0的时候,就会输出空行。
因为在这个过程中,j的值一直不变,所以就一直输出。
改正方法你自己已经写了。你的本意是,当if ( a+c == b+d)并且满5的时候,才换一行,而不是判断不成立都换行。