我用java做杭电1001时老出现 Wrong Answer 请高手帮我修改一下 题目SUM(n) = 1 + 2 + 3 + ... + n.

importjava.io.*;importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){... import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
int sum=0;
Scanner cin = new Scanner (new BufferedInputStream(System.in));
while(true){
int n = cin.nextInt();
sum=0;
for(int i=1;i<=n;i++){
sum+=i;
}
System.out.println(sum);
}
}
}
展开
 我来答
匿名用户
2011-07-20
展开全部
题目翻译:
A + B问题II

问题描述
我给你的一个非常简单的问题。有两个整数A和B,你的工作是计算A的总数 A + B。

输入
输入的首行表示测试用例的个数T(1≤T≤20的整数)。接下来,每行都是两个正整数,A 和B。注意这些整数非常大,你将不能处理32位的整数。你可以假设每个整数的长度将不超过1000。

输出
对每个测试用例,你应该输出两行。首行"例#:" ,#表示测试例的数量。第2 行是一个表达式"A B = 总数",总数表示A+B的结果. 注意表达式间有空格。在两个测试用例之间输出一个空白行。

输入样例
2
1 2
112233445566778899 998877665544332211

输出样例
例1: 1 + 2 = 3

例2: 112233445566778899 + 998877665544332211 = 1111111111111111110

===============代码==================

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

/**
* 杭电
* @author 点子二木
* @version 1.0
* @date 2008-7-29
*
*/
public class Sum {

private static final String PRINT_INPUT_ERROR = "输入有误!";
static boolean inputFlag = true;
static List<CaseBean> inputCaseList = new ArrayList<CaseBean>();

/**
* @param args
*/
public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);
System.out.println("请输入测试用例个数:");
String str = scanner.next();
// System.out.println(str);

int count = 0;
try {
count = Integer.parseInt(str);
} catch (Exception e) {
System.out.print(PRINT_INPUT_ERROR);
return;
}
if (count > 0 && count < 21) {

initCase(scanner, count);

if (!inputFlag) {
return;
}
System.out.println("/////////////结果输出//////////////////");
sumCal();

} else {
System.out.println("输入了错误的个数T(1≤T≤20的整数)!");
}

}

/**
* 求和计算
*/
private static void sumCal() {
int index = 1;
for (CaseBean cb : inputCaseList) {
long addFirst = cb.addFirst;
long addSecond = cb.addSecond;
long sum = addFirst + addSecond;
System.out.print("例" + index + ":");
System.out.println(addFirst + " + " + addSecond + " = " + sum);
System.out.println("");
index++;
}

}

/**
* 初始化一个用例
*
* @param scanner
* @param count
*/
private static void initCase(Scanner scanner, int count) {
for (int index = 0; index < count; index++) {
if (!inputFlag) {
return;
}
System.out.println("输入用例" + (index + 1) + ":");
System.out.print("请输入被加数:");
String strFirst = scanner.next();

System.out.print("请输入加数:");
String strSecond = scanner.next();

CaseBean cb = new CaseBean();
try {
cb.addFirst = Long.parseLong(strFirst);
cb.addSecond = Long.parseLong(strSecond);
} catch (Exception e) {
System.out.print(PRINT_INPUT_ERROR);
inputFlag = false;
}

inputCaseList.add(cb);
System.out.println(" ");
}
}

}

class CaseBean {
long addFirst;
long addSecond;
long sum;

}
===============结果=====================
请输入测试用例个数:
2
输入用例1:
请输入被加数:1
请输入加数:2

输入用例2:
请输入被加数:112233445566778899
请输入加数:998877665544332211

/////////////结果输出//////////////////
例1:1 + 2 = 3

例2:112233445566778899 + 998877665544332211 = 1111111111111111110
追问
虽然题目不是这题  但是还是谢谢你   确实很用心
porker2008
2011-07-20 · TA获得超过1.4万个赞
知道大有可为答主
回答量:7066
采纳率:62%
帮助的人:1.1亿
展开全部
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
int sum=0;
Scanner cin = new Scanner (new BufferedInputStream(System.in));
while(cin.hasNextInt()){ // 先判定还有没有int
int n = cin.nextInt();
sum=0;
for(int i=1;i<=n;i++){
sum+=i;
}
System.out.println(sum);
System.out.println(); // 缺换行
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
421824775
2011-07-20 · TA获得超过884个赞
知道小有建树答主
回答量:355
采纳率:0%
帮助的人:256万
展开全部
没学过java,但看得懂逻辑
while(true) 应该是无限循环的意思吧?
题目要求是输入一直到文件结束, 就是你在调试的时候输入 ctrl + z 时,会结束调试(c++是这样的,估计一样)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
13979229
2011-07-20
知道答主
回答量:26
采纳率:0%
帮助的人:22.8万
展开全部
我用netbeans运行过 好像没问题啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zfiszhidao
2011-07-20 · 超过34用户采纳过TA的回答
知道答主
回答量:257
采纳率:0%
帮助的人:97.3万
展开全部
一起学习 学习
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式