我用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);
}
}
} 展开
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);
}
}
} 展开
5个回答
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
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
追问
虽然题目不是这题 但是还是谢谢你 确实很用心
展开全部
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(); // 缺换行
}
}
}
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(); // 缺换行
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没学过java,但看得懂逻辑
while(true) 应该是无限循环的意思吧?
题目要求是输入一直到文件结束, 就是你在调试的时候输入 ctrl + z 时,会结束调试(c++是这样的,估计一样)
while(true) 应该是无限循环的意思吧?
题目要求是输入一直到文件结束, 就是你在调试的时候输入 ctrl + z 时,会结束调试(c++是这样的,估计一样)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我用netbeans运行过 好像没问题啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一起学习 学习
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询