A + B问题II
问题描述
我给你的一个非常简单的问题。有两个整数A和B,你的工作是计算A的总数 A + B。
输入
输入的首行表示测试用例的个数T(1≤T≤20的整数)。接下来,每行都是两个正整数,A 和B。注意这些整数非常大,你将不能处理32位的整数。你可以假设每个整数的长度将不超过1000。
输出
对每个测试用例,你应该输出两行。首行"例#:" ,#表示测试例的数量。第2 行是一个表达式"AB = 总数",总数表示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 = 0index <countindex++) {
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
八中OJ,又简作BZOJ,以原题巨多而著称,OJ=Online Judge在线测评系统。
原理:
算法竞赛通常采取黑盒测试,事先准备好一些测试数据,然后用它们来评测选手的程序。在在线评测系统中,用户需要提交源代码至服务器,服务器会编译用户的源代码,然后执行源代码生成的可执行文件,得到其输出的结果,并与正确结果比较。
为防止攻击和恶意提交,服务器必须采取一定的安全措施,例如对用户提交的源代码实施过滤、将进程放入沙盒以进行隔离、对代码进行哈希以防止抄袭和重复提交等。
扩展资料:
示例:
首次使用OJ系统进行计算化程序评测的是在2000年的新加坡国立大学,该学校把数据结构与算法的巧试运用在OJ系统中。但是该系统的使用率并不是很高。
大多数的情况下还运学生将自己的作业使用FTP服务器以及电子邮件的方式提交给老师,然后老师去逐个检査学生的程序,利用该系统直接对学生程序进行评满还不是很普遍。
Va在线评测系统是由西班牙瓦雅多利大学开发的自动化线上程序评判系统,包含了超过4300个程序设计问题并且开放给所有人注册参与解题,有超过10万名用户。
用户可以使用C(C89)、C++(C++98)、Pascal、Java、C++11或是Python撰写程序以解决题目中提出的问题,其中Java选项在2001年开放。
C++11选项在2014年开放,Python选项在2016年开放。UVa同时也举办程序设计竞赛,在竞赛环境中用户必须在限制的时间之内解决一组题目。
参考资料来源:百度百科-在线评测系统