杭电1001题,java编写,求解释,为什么两个结果之间留两行空行,题目里只有一行空行啊,以下代码能通过

import java.util.Scanner;

public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
long n, i, sum = 0;

while (cin.hasNextLong()) {
n = cin.nextLong();
sum = 0;
for (i = 1; i <= n; i++) {
sum = sum + i;
}
System.out.println(sum);
System.out.print("\n\n");

}
}
}

HDU的Java编译环境是Windows
所以对应的换行符是\r\n
但是OJ在对比输出的时候,\r和\n并不加以区分
所以\n\n也是等同于\r\n
所以楼主的输出才能通过
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-11
System.out.print("\n\n");
换成
System.out.println();
也能通过。

估计是Unix 下和Windows下的换行表示方法不同导致的。
第2个回答  2012-05-11
System.out.print("\n\n");
调用的是print()方法,自然输出2个空行了,有什么问题?追问

因为题目要求是
1
//空行
5050
而用上面程序的输出结果是
1
//空行
//空行
5050
也就是说这个程序比题目要求的多输出了一个空行,却能通过,为什么呢

追答

import java.util.Scanner;

public class Main {
public static void main(String[] args) {

long n, i, sum = 0;

Scanner cin = new Scanner(System.in);

while (cin.hasNextLong()) {
n = cin.nextLong();
sum = 0;
for (i = 1; i <= n; i++) {
sum = sum + i;
}
System.out.print("\n");
System.out.println(sum);

}
}
}

追问

你这样写无法通过呢

追答

JDK 1.5一点问题都没有的,

追问

是啊,我知道没问题,可就是通不过啊,要不你去杭电看看吧第1001题

第3个回答  2012-05-11
System.out.println(sum);
System.out.println("");
System.out.print(sum);

这样呢?
第4个回答  2012-05-11
println会输出一个换行,你改为System.out.print(sum);System.out.print("\n\n");或System.out.println(sum); System.out.print("\n");就只输出一个换行追问

这样子是不会通过的,要不你去做做杭电的题就知道我的意思了

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网